Hôm ni mình đang hướng dẫn cách để các chúng ta cũng có thể biết cách truyền dữ liệu giữa các form trong c# .(Today i will help you to lớn know how to lớn passing data between forms in c#).

Bạn đang xem: Cách dùng delegate để truyền dữ liệu giữa hai form

Trong thực tế cái này cũng khá được sử dụng hơi là các trong việc liên kết giữa các form, ví dụ như truyền username trong form đăng nhập vào form bình chọn chẳng hạn.Mình xây cất 2 form như hình dưới:
*

Cách 1: Truyền tài liệu qua form dùng hàm tạo ra hay hàm dựng (Constructor)
:Ta lợi dụng các class của Csharp, đầy đủ thành phần của nó các là class, phân biệt hàm chế tạo ra cũng thế.Code của size 1:Trong sự khiếu nại click button1 ta truyền tham số vào đến Form 2 (dĩ nhiên bắt buộc code cho form 2 hoàn toàn có thể truyền tham số được):

public partial class Form1 : size public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) Form2 Child = new Form2(textBox1.Text); // khai báo khung 2 cùng truyền vào tham số Child.Show(); Code của khung 2: public partial class Form2 : size //Tạo 1 biến hóa để nhận quý giá từ size 1 string strNhan; public Form2() InitializeComponent(); // Ta mang đến hàm sinh sản của Form2 kế thừa this() // cùng để nó dấn tham số là một trong kiểu string sau public Form2(string giatrinhan): this() strNhan = giatrinhan; textBox1.Text = strNhan; phương pháp 2: dùng thuộc tính (properties) để truyền dữ liệu:Ta sẽ tạo nên 1 trực thuộc tính cho Form2 để khi click thì trực thuộc tính sẽ tiến hành gán cực hiếm trong textBox1 của form1 .Code form2: public partial class Form2 : form string strNhan; public Form2() InitializeComponent(); //Ta tạo nên 1 ở trong tính mang lại Form2 là Message: public string Message get return strNhan; phối strNhan = value; private void Form2_Load(object sender, EventArgs e) textBox1.Text = strNhan; code form1: public partial class Form1 : form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) Form2 frm = new Form2(); // Gán ngôn từ textbox1 cho thuộc tính Message frm.Message = textBox1.Text; frm.Show(); 3. Dùng DelegateDelegate là một khái niệm khá thú vị và mạnh bạo trong C#. Nó có rất nhiều ứng dụng và truyền dữ liệu giữa những Form là trong số những ứng dụng đó. Nếu như bạn đã từng học qua C++ thì các bạn sẽ thấy Delegate cũng như như nhỏ trỏ hàm vào C++.

Xem thêm: Hướng Dẫn Cách Dùng Nhiệt Kế Đo Nước Tắm Cho Bé Đúng Cách, Nhiệt Kế Đo Nước Tắm Cho Bé Bebe Confort Hình Rùa


Để thực hiện, trong Form2 ta đã khai báo một Delegate có trọng trách nhận vào một trong những tham số và không trả về giá bán trị. Đồng thời chế tạo một hàm để lấy tham số của Delegate. Và trong Form1, ta sẽ call Delegate này với thông số truyền vào là 1 chuỗi thông điệp buộc phải gửi.Form2 :Code
public partial class Form2 : size //Khai báo delegate public delegate void SendMessage(string Message); public SendMessage Sender; public Form2() InitializeComponent(); //Tạo con trỏ tới hàm GetMessage Sender = new SendMessage(GetMessage); //Hàm có trách nhiệm lấy thông số truyền vào private void GetMessage(string Message) textBox1.Text = Message; Code form1: public partial class Form1 : khung public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) Form2 frm= new Form2(); //Tạo Form2 frm.Sender(textBox1.Text); //Gọi delegate frm.Show(); Trên đây mình đã trình diễn ba phương pháp để truyền dữ liệu giữa các Form trong C#Thanks all.