Thứ Tư, 7 tháng 8, 2013

Kiểm soát form con trong MDI Form

MDI Form là 1 dạng form chứa nhiều form con, điển hình như trong ứng dụng Excel của MS. Một bảng tính là 1 form con (Child Form).

Khi ta khởi tạo thì sẽ tạo ra form mới, nếu không kiểm soát thì sẽ tạo ra hoài mà không nhất quán dữ liệu, thậm chí gây ra lỗi trầm trọng.



Ta khởi tạo 1 MDI Form như sau:
Tạo 2 form: Form1 và Form2.
Sự kiện khi Click vô Button CForm1:


Form1 obj = new Form1();
obj.MdiParent = this;
obj.Show();
Ta kiểm soát Form2  bằng viết hàm sau trong Form2.cs:
 private static Form2 instance;
 public static Form2 GetInstance()
 {
    if (instance == null)
         instance = new Form2();
    return instance;
 }
Sự kiện khi Click CForm2:
Form2 obj = Form2.GetInstance ();
 obj.MdiParent = this;
 if (!obj.Visible)
      obj.Show();
 else
      obj.BringToFront();
Kiểm soát, giải phóng biến instance trong sự kiện Form2_Closed:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
 {
      instance = null;
 }
Kết quả Form1 không kiểm soát được:

Nhưng Form2 chỉ tạo 1 cái dù ta click bao nhiêu lần đi nữa :


Không có nhận xét nào:

Đăng nhận xét