01/10/2018, 08:23

Có cách nào gọi một methold trong form từ class khác

e mới học c#! đang cần gọi methold từ trong lớp. có xem qua các khái niệm về delegate và event nhưng mông lung! có tài liệu nói chỉ có thể gọi hàm trong cùng 1 class . có tài liêu nói có thể gọi được ở bất cứ đâu


nếu có thể gọi dc: e xin 1 ví dụ gọi hàm theo tiêu chí trên ạ!

Trần Hoàn viết 10:28 ngày 01/10/2018

Mình thường làm như thế này: Class B là form, Class A bao gồm một object thuộc class B. Trong class B có một public non-static method, và gọi từ object thuộc Class B, như vậy có được không bạn?

B Im C viết 10:28 ngày 01/10/2018

up lại câu hỏi ạ! hk hiểu sao thiếu gõ rồi mà chữ chạy đâu mất

e mới học c#! đang cần gọi methold trong form.(cái methold trong file from.cs (view srource)) từ một class
có xem qua các khái niệm về delegate và event nhưng mông lung! có tài
liệu nói chỉ có thể gọi hàm trong cùng 1 class . có tài liêu nói có thể
gọi được ở bất cứ đâu

nếu có thể gọi dc: e xin 1 ví dụ gọi hàm theo tiêu chí trên ạ!

Trần Hoàn viết 10:28 ngày 01/10/2018


Mình không dùng delegate hay event, liệu có thoả mãn ý kiến của bạn không

B Im C viết 10:25 ngày 01/10/2018

oh mình làm dc rôi!. hiệu quả mà đơn giản quá! đúng mình gà thất

B Im C viết 10:24 ngày 01/10/2018

ac! hk dc bạn ơi! nó new form lên . mình cần thao tác trên trên form này!
mặc dù có chạy vào methold nhưng không thể thao tác trên form để hiển thị dữ liệu

Trần Hoàn viết 10:32 ngày 01/10/2018

thay vì new Form2().ahjhj(); như mình, bạn làm thế này:

var dcmm = new Form2();
dcmm.blablabla();
dcmm.ahjhj();
dcmm.Show, Hide, Close hay cái gì cũng được :))
B Im C viết 10:34 ngày 01/10/2018

khởi tạo bằng new thì không phải là form đó rồi mình đang cần thao tác trả về hiển thị trên form đó

Trần Hoàn viết 10:25 ngày 01/10/2018

nếu vậy trong Form2 bạn phải viết thêm phương thức lấy dữ liệu nữa. Vì các thuộc tính của các item trên Form2 (TextBox1.Text chẳng hạn) đều là private và không thể gọi được từ class ngoài nếu không có phương thức get tương ứng. (ví dụ trong Form2 bạn có thêm public string ahjhj(){return TextBox2.Text} và gọi ahjhj() trong Form1)

Văn Dương viết 10:27 ngày 01/10/2018

Truyền thằng Form1 vào Form2.
Trong Form2 khai báo 1 thằng kiểu Form1 nhưng đừng có new.
Khi khởi tạo Fyorm2 thì gán thằng Form1 trong Form2.

class Form2{
    public Form1 frm1;

    // gọi hàm trên form1
    void call(){
            frm1.hamgido();
     }
}

// trong Form1
Private showForm2(){
    Form2 frm2=new Form2(){frm1=this};
    Frm2.Show();
}
Bài liên quan
0