Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

Lập trình C# - Sử dụng Delegate để truyền giá trị giữa các form

12218 Lượt xem 3 Bình luận 0 Lượt báo xấu
Delegate là gì? Nó có nghĩa là “ủy quyền”, hay là “ủy thác” nó tựa tựa như là con trỏ hàm trong C/C++ vậy.-Cách làm nà:

-Ta sẽ tạo 2 form A ,B
+A có 1 label để hiện thị chuỗi nhập vào từ form B,và 1 cái button để tạo form B.
+B có 1 textbox để nhập chuỗi cần truyền cho A,và 1 button để truyền.

-Đối với form B code:

 
public partial class B : Form
    {
        public B()
        {
            InitializeComponent();
            this.button1.Click += new EventHandler(button1_Click);
        }
         
        public delegate void SEND(string s); //delegate tham chiếu tới 1 hàm kiểu void tênham(string s);
        public SEND sender; //1 biến kiểu SEND 
        void button1_Click(object sender, EventArgs e)
        {
            this.sender(textBox1.Text); //thực thị công việc của hàm mà sender tham chiếu tới.
        }
        private void B_Load(object sender, EventArgs e)
        {
        }
    }


+Đối với form A( main form)
 
public partial class A : Form
    {
        public A()
        {
            InitializeComponent();
            this.button1.Click += new EventHandler(button1_Click);
        }
        void button1_Click(object sender, EventArgs e)
        {
            B tauit = new B(); //tạo 1 form B
            tauit.sender = new B.SEND(getString); //cho sender của form mới tạo tham chiếu tới hàm getString của form A.
            tauit.ShowDialog();
        }
        public void getString(string s //1 hàm giống với kiểu hàm mà delegate bên form B có thể tham chiếu tới.
        {
            this.label1.Text=s; //Gán chuỗi s cho label của form A 
        }
    }


Như vậy sau khi tạo form B và nhập chuỗi vào textbox của form B ,rồi click button ở form B thì.
void button1_Click(object sender, EventArgs e)
{
      this.sender(textBox1.Text); //thực thị công việc của hàm mà sender tham chiếu tới.
}


-->lúc này sender đang tham chiếu tới hàm getString của form A nên this.sender(textBox1.Text); cũng chính là gọi getString(textBox1.Text); mà hàm getString làm gì thì bạn rõ rồi chứ?
Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

Bài viết bổ ích
0 Lượt thích

CẢm ơn anh đã chia sẻ bài viết này giúp đỡ em
0 Lượt thích

Đọc xong hiểu hơn về delegate
0 Lượt thích

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng