Bạn đang nghiên cứu và làm việc với Windows Forms, bạn đang thiết kế một ứng dụng phần mềm quản lý, bạn đã có khái niệm “Form Cha” – “Form Con”. Tuy nhiên việc quản lý các Form con trong form cha thì chưa hẳn bạn nào cũng biết. Vậy tôi viết bài này để chia sẻ với các bạn cách quản lý Form cha con.
Trong bài viết này, tôi giả sử có 1 giao diện chính của một phần mềm quản lý nhân sự như sau:
Bây giờ chúng ta hãy bắt đầu các bước để thiết kế và xử lý Form cha con.
Bước 1: Bạn hãy thiết kế giao diện chính của phần mềm như trên, tên Form giả sử là frmMain. Bạn hãy chắc chắn rằng đã chọn thuộc tính: IsMdiContainer = True để thiết lập đây là Form cha.
Bước 2: Bây giờ tôi sẽ thêm vào Project 2 Form “Thêm nhân viên” (frmEmployee) và “Danh sách nhân viên” (frmListEmpoyee).
Form “Thêm nhân viên” (frmEmployee)
Form “Danh sách nhân viên” (frmListEmpoyee).
Bước 3: Bạn hãy viết sự kiện Click cho 2 nút “Thêm nhân viên” và “Danh sách nhân viên” trên thanh ToolStrip của Form Cha để hiển thị Form tương ứng.
frmEmployee frm = new frmEmployee();
frm.MdiParent = this;
frm.Show();
và
frmListEmployee frm = new frmListEmployee();
frm.MdiParent = this;
frm.Show();
Chú ý, thuộc tính MdiParent dùng để thiết lập Form Cha của các Form này là frmMain
Bước 4: Bạn hãy thử Click nhiều lần trên nút “Thêm nhân viên” hay “Danh sách nhân viên” bạn sẽ thấy nhiều Form đó được xuất hiện. Đây là điều bạn không muốn!!!??? Vậy làm sao đây??? Hãy chuyển qua bước 5.
Bước 5: Hẳn là bạn muốn khi Click vào “Thêm nhân viên” nhiều lần thì Form đó chỉ được hiện ra một lần. Nếu đang bị che khuất bởi Form “Danh sách nhân viên” thì nó sẽ hiện lên trên. Và ngược lại. Vậy thì ta sẽ làm như sau:
Chúng ta biết là trong Form Cha có thuộc tính MdiChildren trả về tập các Form Con đang hiển thị trong Form Cha. Trong frmMain bạn hãy viết phương thức sau:
Phương thức CheckExistForm để kiểm tra xem 1 Form với tên nào đó đã hiển thị trong Form Cha (frmMain) chưa? => Trả về True (đã hiển thị) hoặc False (nếu chưa hiển thị).
Phương thức tiếp theo là ActiveChildForm:
Phương thức tiếp theo là ActiveChildForm dùng để “Kích hoạt” – hiển thị lên trên cùng các trong số các Form Con nếu nó đã hiện mà không phải tạo thể hiện mới.
Bước 6: Hãy sử dụng 2 phương thức trên để quản lý các Form Con như ý muốn
Bây giờ bạn hãy sửa lại code trong sự kiện Click trên 2 nút “Thêm nhân viên” và “Danh sách nhân viên” như sau:
Hẳn là tôi không cần giải thích đoạn code trên các bạn đã hiểu ý nghĩa của nó.
Bước 7: Hãy Click thoải mái trên 2 nút trên thử nghiệm, bạn sẽ thấy chỉ có 2 Form hiển thị như ý muốn.
Nếu bạn muốn quản lý nhiều Form Con như vậy thì hãy sử dụng 2 phương thức CheckExistForm và ActiveChildForm tương tự như trên.
Chúc bạn thành công!
Bình luận (0)
Add Comment