Một ứng dụng MDI (Multiple-document interface) là 1 ứng dụng cho phép bạn hiển thị cùng một lúc nhiều cửa sổ (document) khác nhau và cùng nằm trong 1 cửa sổ (document).
– Cửa sổ mà nó chứa các cửa sổ khác được gọi là cửa sổ cha (parent form), còn các cửa sổ mà nằm trong cửa sổ cha thì gọi là cửa sổ con (child form).
– Ta không thể di chuyển cửa sổ con ra khỏi cửa sổ cha.
– Khi ta đóng cửa sổ cha thì các cửa sổ con cũng sẽ phải đóng theo.
Để tạo 1 MDI application, trước hết ta tạo 1 main form (parent form).
Muốn cho 1 form bình thường thành parent form, bạn chỉ cần thay đổi thuộc tính IsMdiContainer = true là form của bạn sẽ giống như bị lõm xuống và từ lúc này, form này có thể chứa các form khác đựơc.
Sau đó, bạn tạo thêm 1 form nữa để làm template cho các child form. Và để hiển thị 1 child form trên parent form, bạn phải viết cho nó đoạn code sau:
Form2 newMDIChild = new Form2();
// Set the Parent Form of the Child window.
newMDIChild.MDIParent = this;
// Display the new form.
newMDIChild.Show();
Đầu tiên, bạn phải tạo 1 instant của child form (form2)
Kế đến, bạn cho biết cha của form này là ai. Ở đoạn code trên bạn gán newMdiChild.MDIParent = this có nghĩa là cha của form này chính là form mà bạn đang nhập vào source code này.
Và sau cùng là bạn cho show form này lên.
Viết ứng dụng soạn thảo văn bản đơn giản sử dụng giao diện MDI.
Các thuộc tính:
Form | Name Text IsMdiContainer |
frmMain Chương Trình Soạn Thảo Văn Bản True |
Form | Name Text IsMdiContainer |
frmEditor Untitled False |
Menu | Name | Default (MainMenu1) |
MenuItem | Name Text |
mnuItemTao Tạo Mới |
MenuItem | Name Text |
mnuItemMo Mở Tập Tin |
MenuItem | Name Text |
mnuItemThoat Thoát |
RichTextBox | Name | txtEditor |
Ở đây tôi xin nói thêm về RichTextBox.
RichTextBox control dùng để hiển thị text, nhập text vào và xử lý text với các định dạng. RichTextBox nó gần giống nhữ Textbox, nó có hầu hết các thuộc tính cũng nhữ những chức năng của TextBox, và nó còn có thể hiển thị font, màu và các liên kết. Nó có thể load text từ file vào, chèn hình ảnh từ 1 tập tin vào, nó có thể undo và redo các thao tác edit.
Và dưới đây là source code:
private void New()
{
frmEditor newEditor = new frmEditor();
newEditor.MdiParent = this;
newEditor.Show();
}
private void mnuItemTao_Click(object sender, System.EventArgs e)
{
New();
}
Ví dụ này chủ yếu chỉ để cho các bạn làm quen với một ứng dụng MDI nên ta chưa có làm 1 ứng dụng hoàn chỉnh.
Viết 1 chương trình soạn thảo văn bản (như trên) nhưng với đầy đủ các chức năng.