NƠI ĐẶT BANNER QUẢNG CÁO

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:
01public partial class B : Form
02    {
03        public B()
04        {
05            InitializeComponent();
06            this.button1.Click += new EventHandler(button1_Click);
07        }
08         
09        public delegate void SEND(string s); //delegate tham chiếu tới 1 hàm kiểu void tênham(string s);
10        public SEND sender; //1 biến kiểu SEND
11        void button1_Click(object sender, EventArgs e)
12        {
13            this.sender(textBox1.Text); //thực thị công việc của hàm mà sender tham chiếu tới.
14        }
15        private void B_Load(object sender, EventArgs e)
16        {
17        }
18    }
+Đối với form A( main form)
01public partial class A : Form
02    {
03        public A()
04        {
05            InitializeComponent();
06            this.button1.Click += new EventHandler(button1_Click);
07        }
08        void button1_Click(object sender, EventArgs e)
09        {
10            B tauit = new B(); //tạo 1 form B
11            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.
12            tauit.ShowDialog();
13        }
14        public void getString(string //1 hàm giống với kiểu hàm mà delegate bên form B có thể tham chiếu tới.
15        {
16            this.label1.Text=s; //Gán chuỗi s cho label của form A
17        }
18    }
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ì.
1void button1_Click(object sender, EventArgs e)
2        {
3            this.sender(textBox1.Text); //thực thị công việc của hàm mà sender tham chiếu tới.
4        }
-->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ứ ?
Next
This is the most recent post.
Bài đăng Cũ hơn

0 nhận xét:

Đăng nhận xét