Thứ Hai, 3 tháng 5, 2010

Các điều khiển thông dụng trong VB.NET



Trong trò chơi Line-NIIT, ta có chức năng cho phép người chơi có thể lưu trạng thái của trò chơi để sau này tiếp tục trò chơi với trạng thái trước đó. Tôi xin giới thiệu một số điều khiển thông dụng (common control) trong VB.NET cần thiết cho việc này.


Hộp thoại mở/lưu tập tin
Khi bạn dùng các chương trình như Microsoft Word hay Paint, bạn thấy hộp thoại mở tập tin giống nhau. Đó không phải là sự tình cờ. Trong VB.NET, hộp thoại như vậy là đối tượng OpenFileDialog mà bạn có thể tạo ra dễ dàng bằng một trong hai cách sau:
- Cách 1: Tạo ra đối tượng thuộc lớp OpenFileDialog rồi thay đổi các thuộc tính của đối tượng này cho phù hợp với nhu cầu của chương trình.
- Cách 2: Kéo đối tượng OpenFileDialog từ hộp công cụ, thả vào form lúc thiết kế.
Các thuộc tính (property) và phương thức (method) tiêu biểu của lớp OpenFileDialog:
Thuộc tính:
-Filename: Tên tập tin được chọn.
-Filter: Quy định các kiểu tập tin được hiển thị trong hộp thoại.
-FilterIndex: Cho biết kiểu tập tin nào trong thuộc tính Filter được người dùng chọn.
-Initial Directory: Thư mục mặc định.
-MultiSelect: Cho phép chọn nhiều tập tin hay chỉ chọn một tập tin.
Phương thức:
-Dispose: Giải phóng tài nguyên cấp phát cho đối tượng OpenFileDialog.
-Reset: Thiết lập lại các thuộc tính về giá trị mặc định ban đầu.
-ShowDialog: Hiển thị hộp thoại.
Đoạn mã 1 minh họa việc mở hộp thoại có các bộ lọc (filter) là *.txt, *.doc, và *.* và thư mục mặc định là thư mục gốc ổ đĩa C. Hộp thoại được tạo ra trông như hình 1.


H.1

Đoạn mã 1
Dim strFileName As String
Dim dlgOpenFile As New OpenFileDialog

With dlgOpenFile
.Filter = "Text files (*.txt)|*.txt|Document files (*.doc)|*.doc|All files (*.*)|*.*"
.FilterIndex = 1
.InitialDirectory = "C:\"
End With
If (dlgOpenFile.ShowDialog() = Windows.Forms.DialogResult.OK) Then
strFileName = dlgOpenFile.FileName
MessageBox.Show("Ban vua chon ten tap tin la:" + strFileName, "Open File", MessageBoxButtons.OK)
End If
Hộp thoại lưu tập tin là đối tượng SaveFileDialog, có các thuộc tính và phương thức gần như giống hoàn toàn với OpenFileDialog. Ngoài ra, bạn còn có thể tạo ra dễ dàng hộp thoại chọn phông (FontDialog), hộp thoại chọn màu (ColorDialog), hộp thoại in tài liệu (PrintDialog). Bạn nên đặt tên biến cho các đối tượng hộp thoại mô tả ở trên với tiếp đầu ngữ là dlg.
Trình đơn
Trình đơn (menu) là phần quan trọng của mọi chương trình, cho phép người dùng duyệt qua các chức năng và làm việc với chương trình. Ta cũng có thể tạo trình đơn bằng hai cách: tạo bằng câu lệnh hoặc tạo khi thiết kế form. Đoạn mã 2 minh họa cách tạo trình đơn và các mục trình đơn (menu item) bằng câu lệnh.
Đoạn mã 2
Tạo ra trình đơn chính
Dim mnuMain As New MainMenu()
Tạo ra các mục trình đơn
Dim mnuItem1 As New MenuItem("&File")
Dim mnuItem2 As New MenuItem()

Đặt thuộc tính cho mục trình đơn
mnuItem2.Text = "Open"
mnuItem2.Shortcut = Shortcut.Alt8
Đưa mục mnuItem2 vào mục mnuItem1
mnuItem1.MenuItems.Add(mnuItem2)
Đưa mục mnuItem1 vào trình đơn chính
mnuMain.MenuItems.Add(mnuItem1)
' Gắn trình đơn chính vào form
Me.Menu = mnuMain
Việc tạo trình đơn khi thiết kế form nhanh hơn nhiều. Ta có thể tạo một Project rồi kéo trình đơn vào form (như mọi điều khiển khác). Nghĩa là bạn có thể thiết kết trình đơn một cách trực quan ngay trên form.
Trình đơn ngữ cảnh
Trình đơn ngư cảnh (context menu) cho phép người dùng truy cập nhanh đến các lệnh/chức năng trong ứng dụng bằng cách nhắp chuột phải. Thông thường, trình đơn ngữ cảnh được gán cho một điều khiển nhất định và cung cấp lệnh phù hợp cho điều khiển đó.
Ta cũng có thể tạo ra trình đơn ngữ cảnh bằng câu lệnh trong chương trình hoặc tạo ra khi thiết kế form. Đoạn mã 3 minh họa cách tạo trình đơn ngữ cảnh bằng câu lệnh.
Đoạn mã 3
Tạo ContextMenu
Dim mnuContextMenu as New ContextMenu()
Gán ContextMenu này vào form chính
Me.ContextMenu = mnuContextMenu
Khai báo mục trình đơn New và Open
Dim mnuItemNew as New MenuItem()
Dim mnuItemOpen as New MenuItem()
Thiết lập thuộc tinh cho hai mục trên
mnuItemNew.Text = "&New"
mnuItemOpen.Text = "&Open"
Đưa các mục trình đơn vào ContextMenu
mnuContextMenu.MenuItems.Add(mnuItemNew)
mnuContextMenu.MenuItems.Add(mnuItemOpen)

0 nhận xét:

Đăng nhận xét