Tạo ứng dụng đa cửa sổ MDI trong C#

MDI Form là gì ? Tại sao phải dùng đa cửa sổ (MDI Form) trong ứng dụng C# ?

MDI Form trong winform C#

  1. Tại sao phải dùng đa cửa sổ (MDI Form) trong ứng dụng C# ?
  2. Nếu ứng dụng không có đa cửa sổ (MDI Form) thì phần mềm chạy tốt không ?
  3. Cách tạo ứng dụng đa cửa sổ (MDI Form) trong winform c# có khó không ?

Bạn sử dụng một phần được lập trình C#, có rất nhiều cửa sổ, có 2 phần mềm được 2 lập trình viên làm theo 2 cách như sau:

  • Lập trình viên c# 01: Mở cửa sổ này xong, muốn mở cửa sổ khác phải đóng cửa số trước đó
  • Lập trình viên c# 02: Mở cửa sổ này xong, không cần đóng cửa sổ trước, các cửa sắp xếp bên dưới như hệ điều hành window.

    Bạn thích phần mềm cửa lập trình số 01 hay số 02

MDI Form là gì ?
MDI Form viết tắt của từ Multiple Document Interface, dịch ra theo nghĩa chung là nhiều tài liệu trong 1 giao diện, theo nghĩa lập trình c# thì MDI Form là 1 Form có thể chứa 1 hoặc nhiều form con (Form là 1 cửa sổ xem hay nhập liệu của 1 phần mềm C#) .
  Còn gọi là: form con nằm trong form cha

Cách tạo MDI Form C# ?

Bước 1: Tạo 1 project kiểu winform C#

Bước 2: Tạo 1 form main
    Form Main là form chính chưa menu điều khiển các form còn lại.
    Cấu hình trong thuộc tính hay trong code form load: 
        this.IsMdiContainer = true;
       Nếu bạn thay đổi trong thiết kế IsMdiContainer = true sẽ thấy giao diện form main chuyển sang màu xám.

Bước 2: Tạo các form con

    Tùy vào nghiệp vụ của phần mềm. Ví dụ bài này có 2 form là frmA , frmB

Bước 4:
   Vào lại form main lập trình code C# lệnh gọi form

   Gọi form A

Form frm = null;
frmA f = new frmA ();
frm = f;
frm.MdiParent = this;
frm.Show();
frm.BringToFront();

Gọi form BForm frm = null;
frmB f = new frmA ();
frm = f;
frm.MdiParent = this;
frm.Show();
frm.BringToFront();

Khi gọi form bạn thấy form A, B được hiển thị bên trong của Form main.

 // nap vao danh sach MDI combox

 Form[] mdiFormsList = MdiChildren;
 for (int i = 0; i < mdiFormsList.Length; i++)
 {
     // MessageBox.Show(mdiFormsList[i].Text);
     if(!cbListForm.Items.Contains(mdiFormsList[i].Name))
         cbListForm.Items.Add(mdiFormsList[i].Name);
 }

 // kich hoat MDI form tu combox

 private void cbListForm_SelectedIndexChanged(object sender, EventArgs e)
 {
     Form[] mdiFormsList = MdiChildren;

     for (int i = 0; i < mdiFormsList.Length; i++)
     {
         // MessageBox.Show(mdiFormsList[i].Text);
         if (cbListForm.Text == mdiFormsList[i].Name)
             mdiFormsList[i].Activate();
     }
 }

 

 

[Mời bạn xem video hướng dẫn chi tiết tạo MDI Form C#]

MDI Form là gì ? Tại sao phải dùng đa cửa sổ (MDI Form) trong ứng dụng C# ?