Ok! Tớ code tạm chút xíu để mô tả dùm cậu vấn đề này. Ở đây tớ chỉ cậu 4 cách sử dụng, thích cách nào thì xài cách đó, còn thích thì tìm cách tối ưu mà dùng.
Trong lúc code tớ giải thích khá rỏ ràng nên tớ không giải thích lại ở đây, cậu đọc code nha.
//Tại Form1
Visual C# Code:
{ { InitializeComponent(); } #region Singleton { return me; } #endregion { //Khởi tạo form2 và truyền form1 này vào constructor, tại form2 sẽ có constructor xử lý để lấy //nếu không muốn truyền thông qua constructor thì có thể chỉ làm như sau: //Form2 frm = new Form2(); //Truyền giá trị cho biến frmMain bên form2 có kiểu là Form1 là form này //có thể bỏ qua bước này nếu không muốn truyền theo dạng khai báo một đối tượng bên Form2 //truyền giá trị cho biến khai báo trong static, bỏ qua nếu ko muốn cách khai báo này StaticClass.txtTest1 = txtTest; //Show form frm.ShowDialog(); } }
//Tại Form2
Visual C# Code:
{ { InitializeComponent(); } Form1 frmMainCon; { InitializeComponent(); frmMainCon = frm1; } public Form1 frmMain; { //Lấy giá trị thông qua singleton để show MessageBox.Show(Form1.GetObj().txtTest.Text); } { //Lấy giá trị khi bên form1 khởi tạo và truyền giá trị vào constructor qua đối tượng frmMainCon: ( =new Form2(this) ) MessageBox.Show(frmMainCon.txtTest.Text); } { //Lấy giá trị từ đối tượng khai báo trong form2 này và được truyền khi truyền bởi: frm.frmMain (bên form1) MessageBox.Show(frmMain.txtTest.Text); } { //Lấy giá trị từ class static đã khai báo MessageBox.Show(StaticClass.txtTest1.Text); } }
//Static Class
Visual C# Code:
Mà tốt nhất cậu nên down demo sau về mà xem.