Nguyen Ha Giang - 2008 10Multiple Document Interface n Tạo một form con để add vào form chính q Click chuột phải lên tên project trong Solution Explorer n Chọn tên của form con q Thiết
Trang 1SD I & M D I
ThS Nguyễn Hà Giang Khoa CNTT - Hutech
Trang 2Nguyen Ha Giang - 2008 2
N i Dung
n Tổng quan ứng dụng Document Interface
n Single Document Interface (SDI)
n Multiple Document Interface (MDI)
Trang 3Nguyen Ha Giang - 2008 3
ng d ng document Interface
n Dạng ứng dụng làm việc với các document
q Document chứa nội dung dữ liệu, được lưu trữ trên file đặc trưng, hoặc trong CSDL.
q Single Document Interface
q Multiple Document Interface
Trang 4Nguyen Ha Giang - 2008 4
Single Document Interface
n Chỉ hỗ trợ một document hoặc một cửa sổ tại một thời
Trang 5Nguyen Ha Giang - 2008 5
Single Document Interface
Single Document Interface
Document
Trang 6Nguyen Ha Giang - 2008 6
Multiple Document Interface
n Ứng dụng cho phép xử lý nhiều document tại một thời
Trang 7Nguyen Ha Giang - 2008 7
Multiple Document Interface
Document
Ứng dụng MDI – MS PowerPoint
Trang 8Nguyen Ha Giang - 2008 8
Multiple Document Interface
n MDI Parent Window – MDI Child Window
Child window
Child window Child
window
Parent window
MDI Application
Chỉ có duy nhất một parent windows
Có nhiều child windows
Trang 9Nguyen Ha Giang - 2008 9
Multiple Document Interface
n Cách tạo MDI Form
q Tạo form và thiết lập thuộc tính IsMdiContainer = true, khi đó form sẽ thay đổi cách thể hiện
Trang 10Nguyen Ha Giang - 2008 10
Multiple Document Interface
n Tạo một form con để add vào form chính
q Click chuột phải lên tên project trong
Solution Explorer
n Chọn tên của form con
q Thiết kế form con theo yêu cầu
của ứng dụng.
Tạo form con
Trang 11Nguyen Ha Giang - 2008 11
Multiple Document Interface
n Add form con vào form chính
q Tạo đối tượng của form con
q Thiết lập thuộc tính MdiParent của form con là form chính
n Một cách tổng quát để add form con vào form chính
ChildFormClass childForm = new ChildFormClass();
childForm MdiParent = <thể hiện của form cha> ;
childForm Show ();
Lớp form con
Thiết lập form cha (nếu đang ở trong form cha thì dùng đối tượng this)
Hiển thị form con
Tạo đối tượng cho lớp form con
Trang 12Nguyen Ha Giang - 2008 12
Multiple Document Interface
Thuộc tính, phương thức và sự kiện Thuộc tính của MDI child
Thuộc tính của MDi parent
Trang 13Nguyen Ha Giang - 2008 13
Multiple Document Interface
n Trạng thái Minimize, Maximize và Close
Icon của parent : minimize, maximize, close
Icon của child : restore,
Trang 15Nguyen Ha Giang - 2008 15
Multiple Document Interface
n Sắp đặt các child form
TileHorizontal TileVertical
Trang 16Nguyen Ha Giang - 2008 16
Multiple Document Interface
n Tạo ứng dụng MDI: PixView xem ảnh
n Tạo ứng dụng MDI trong đó
n Chức năng open: mở file ảnh từ đĩa
n Gọi form con hiển thị ảnh
n Cho phép sắp xếp các cửa sổ con
n Lấy thông tin file từ form cha
n Hiển thị file ảnh lên PictureBox
Trang 17Nguyen Ha Giang - 2008 17
Multiple Document Interface
n Bước 1: Tạo ứng dụng Windows App
q Thiết lập Form1 là form cha
MDI
Trang 18Nguyen Ha Giang - 2008 18
n Bước 2: tạo form con
q Trong cửa sổ Solution Explorer kích chuột phải lên tên
Project
q Đặt tên cho form con
Multiple Document Interface
Trang 19Nguyen Ha Giang - 2008 19
Multiple Document Interface
n Bước 3: bổ sung control PictureBox vào Form2
n Thiết lập các thuộc tính cho PictureBox
q Dock = Fill
Trang 20Nguyen Ha Giang - 2008 20
Multiple Document Interface
n Bước 4: bổ sung constructor cho form2,
q Constructor này có tham số là tên file cần mở
Trang 21Nguyen Ha Giang - 2008 21
Multiple Document Interface
n Bước 5: tạo menu cho form chính (Form1)
n Kéo MenuStrip thả vào Form1
q Tạo các top menu:
Trang 22Nguyen Ha Giang - 2008 22
Multiple Document Interface
n Bước 6: viết phần xử lý cho menu item “Open”
q Trong màn hình thiết kế kích đúp vào menu item Open
q VS.NET sẽ tạo trình xử lý cho menu item
n Mở dialog để chọn file
n User chọn 1 file ảnh
n Lấy đường dẫn file ảnh
n Tạo mới đối tượng form2 truyền tham số đường dẫn file
n Thiết lập liên kết giữa form cha và form con
n Hiển thị form2 ra màn hình
Trang 23Nguyen Ha Giang - 2008 23
Multiple Document Interface
n Đoạn code minh họa xử lý cho menu item “Open”
Trang 24Nguyen Ha Giang - 2008 24
Multiple Document Interface
n Bổ sung các chức năng sắp xếp form con
q Viết các xử lý cho các menu item
n Gọi hàm LayoutMdi với các tham số tương ứng
Trang 25Nguyen Ha Giang - 2008 25
Multiple Document Interface
Trang 26Nguyen Ha Giang - 2008 26
Menu - MenuStrip
Trang 28Nguyen Ha Giang - 2008 28
Menu
n Cách tạo menu
q Trong ToolBox kéo control MenuStrip thả vào form
q Trong màn hình design dễ dàng tạo lập các menu item
Nhập tên menu
MenuStrip
MenuBar
ToolStripMenuItem
Trang 30Nguyen Ha Giang - 2008 30
Menu
n Thiết lập Shortcut Key cho menu item
Khai báo shortcut key
Trang 31Nguyen Ha Giang - 2008 31
Menu
n Menu item có thể là TextBox hoặc ComboBox
Chọn nút dropdown trên textbox nhập item để hiển thị các dạng menu item
khác
ToolStripMenuItem
ToolStripComboBox
ToolStripTextBox
Trang 32Nguyen Ha Giang - 2008 32
Menu
Thuộc tính của MenuStrip, ToolStripMenuItem MenuStrip
MdiWindowListItem Chọn top menu item hiển thị tên các cửa sổ con
ToolStripMenuItem
ShowShortcutKeys Xác định trạng thái hiện thị phím tắt bên cạnh
menu item
Trang 33Nguyen Ha Giang - 2008 33
Menu
n Sự kiện cho Menu Item thường dùng là Click
n Trong màn hình Design View kích đúp vào menu item
q VS sẽ tự động tạo trình xử lý cho menu item
Trình xử lý cho
sự kiện click của menu item
“Open”
Trang 34Nguyen Ha Giang - 2008 34
ContextMenu
Trang 35Nguyen Ha Giang - 2008 35
Context Menu
n Xuất hiện khi user kích chuột phải
n Thông thường menu này xuất hiện tùy thuộc vào đối
tượng trong vùng kích chuột phải.
n Trong ToolBox kéo ContextMenuStrip thả vào form
Trang 36Nguyen Ha Giang - 2008 36
Context Menu
n Kích vào ContextMenuStrip để soạn thảo các menuitem
n ContextMenuStrip tạm thời thể hiện trên cùng của form
q Khi run thì sẽ không hiển thị cho đến khi được gọi
select
Soạn thảo Context Menu tương tự như Menu bình thường
Trang 37Nguyen Ha Giang - 2008 37
Context Menu
n Khai báo sử dụng Context Menu
n Mỗi control đều có property là: ContextMenuStrip
q Khai báo thuộc tính này với ContextMenuStrip
n Khi đó user kích chuột phải lên control thì sẽ hiển thị context Menu đã cài đặt sẵn
n Khai báo trình xử lý sự kiện Click cho ContextMenu
q Kích đúp vào menu item của Context Menu để tạo
q Hoặc trong cửa sổ Properties → Event kích đúp vào sự kiện Click.
Trang 39Nguyen Ha Giang - 2008 39
Context Menu
n Kéo ContextMenuStrip thả vào Form
Trang 40Nguyen Ha Giang - 2008 40
Context Menu
n Kích vào ContextMenuStrip để thiết kế menu
Soạn thảo các menu item
Trang 41Nguyen Ha Giang - 2008 41
Context Menu
n Liên kết ContextMenu với ListBox
q Trong cửa sổ properties của ListBox
n Khai báo thuộc tính ContextMenuStrip = ContextMenuStrip1
Chọn context menu
Trang 42Nguyen Ha Giang - 2008 42
Context Menu
n Khai báo trình xử lý sự kiện Click cho menu item
Trang 43Nguyen Ha Giang - 2008 43
Context Menu
n Demo
Context Menu hiển thị khi user kích chuột phải lên ListBox
Trang 44Nguyen Ha Giang - 2008 44
ToolStrip
Trang 45Nguyen Ha Giang - 2008 45
ToolStrip
n ToolStrip là sự thay thế cho ToolBar trong các ứng dụng trước đây
n Vị trí thường xuất hiện là ngay bên dưới thanh menu
n Cung cấp các button cho phép thực hiện các chức năng
thường dùng trong menu
n ToolStrip là dạng container cho phép chứa các control
q Các control này dẫn xuất từ ToolStripItem
Trang 46Nguyen Ha Giang - 2008 46
ToolStrip
n Cách tạo button trên ToolStrip
q Kéo ToolStrip thả vào form
Tạo button
Trang 47Nguyen Ha Giang - 2008 47
ToolStrip
n Bổ sung image cho button
q Sử dụng thuộc tính Images để thiết lập
Trang 49Nguyen Ha Giang - 2008 49
ToolStrip
n Khai báo trình xử lý sự kiện Click cho ToolStripButton
q Khai báo tương tự như các button
n Kích đúp vào button trong Design View
chứa trong menu
n VD: các button New, Open, Save…
n Do đó có thể khai báo cùng trình xử lý sự kiện cho các button
và menu item cùng chức năng.
q VD: Menu item “Open” cùng trình xử lý với ToolStripButton “Open”
Trang 50Nguyen Ha Giang - 2008 50
ToolStrip
n Demo: tạo thanh menubar cho phép nhập URL và khi
nhấn enter chương trình sẽ open địa chỉ đó
ToolStripLabel ToolStripTextBox
WebBrowser Dock=Fill
Trang 51Nguyen Ha Giang - 2008 51
ToolStrip
n Xử lý sự kiện KeyDown cho ToolStripTextBox
Trang 52Nguyen Ha Giang - 2008 52
ToolStrip
n Demo
Trang 53Nguyen Ha Giang - 2008 53
StatusStrip
Trang 54Nguyen Ha Giang - 2008 54
StatusStrip
n Hiển thị thông tin trạng thái của ứng dụng
n Nằm bên dưới cùng của Form.
n Các lớp liên quan
q StatusStrip: là container chứa control khác
q ToolStripStatusLabel: control có thể add vào StatusStrip
Trang 55Nguyen Ha Giang - 2008 55
StatusStrip
n Tạo các item cho StatusStrip
Tạo các item cho StatusStrip
Các kiểu control cho
StatusStrip
Trang 56Nguyen Ha Giang - 2008 56
StatusStrip
n Ví dụ tạo sự kiện Tick của Timer cứ mỗi giây kích hoạt và hiển thị giờ trên StatusStrip
n Thiết lập sự kiện Tick cho Timer với Interval là 1000 ms
Item dạng Label của StatusStrip
Trang 57Nguyen Ha Giang - 2008 57
StatusStrip
n Demo
ToolStripStatusLabel StatusStrip
Trang 58Nguyen Ha Giang - 2008 58
StatusStrip
n VD: bổ sung hiển thị một hyperlink trên StatusStrip và
open hyperlink khi user kích chuột
Label hiển thị hyperlink Thuộc tính isLink
= true
Thiết lập với thuộc tính spring = true, Text = “”
Trang 61Nguyen Ha Giang - 2008 61