MỘT SỐ ĐIỀU KHIỂN XÂY DỰNG MENU
***
I. NOTIFY ICON
1. Chức năng
Điều khiển NotifyIcon cho phép bạn trình bày biểu tượng trên System
Tray của hệ điều hành (như biểu tượng của Unikey, IDM, SQL Server…). Mỗi
khi người dùng di chuyển chuột đến biểu tượng (icon) thì chuỗi khai báo
trong thuộc tính Text của điều khiển NotifyIcon sẽ xuất hiện (tương tự như
một tooltip – chú giải).
2. Một số thuộc tính thường dùng
Điều khiển Notify Icon có một số thuộc tính như sau:
Tên Ý nghĩa
Icon Icon sẽ xuất hiện dưới khay hệ thống khi Form hiển thị
Text Chuỗi xuất hiện khi bạn di chuyển chuột vào Icon dưới khay hệ thống
ConTextMenuStrip Menu Popup (menu ngữ cảnh) sẽ xuất hiện khi người dùng nhấn chuột phải
vào Icon dưới khay hệ thống
3. Minh họa sử dụng Notify Icon bằng một số Code
Giả sử chúng ta có một Form có tên là frmNotifyIcon. Bạn thêm một
điều khiển NotifyIcon vào frmNotifyIcon(mặc định nó có tên notifyIcon1) và
thêm một điều khiển ContextMenuStrip vào frmNotifyIcon (mặc định nó có tên
là contextMenuStrip1).
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
3.1. Sử dụng điều khiển NotifyIcon
• Bước 1: Kéo một điều khiển NotifyIcon vào form
• Bước 2: Kéo một điều khiển ContextMenuStrip vào form và tạo ra vài menu (để gắn với NotifyIcon)
• Bước 3: Đặt thuộc tính Icon cho điều khiển NotifyIcon (trỏ tới một icon nào đó).
• Bước 4: Đặt thuộc tính Text cho điều khiển NotifyIcon.
• Bước 5: Đặt thuộc tính ContextMenuStrip của điều khiển NotifyIcon là điều khiển ContextMenuStrip ở bước 2
• Bước 6: Chạy chương trình để thấy kết quả
3.2. Tạo và sử dụng NotifyIcon bằng Code
//Bạn viết trong sự kiện Load của Form
private void frmNotifyIcon_Load(object sender, EventArgs e)
{
//Khai báo đối tượng NotifyIcon
NotifyIcon ni = new NotifyIcon();
//Đặt các thuộc tính cho đối tượng này
Icon ic = new Icon("CongNgheNet.ico");//Bạn phải Copy một Icon có tên mà CongNgheNet vào thư mục Bin
ni.Icon = ic;
ni.Text = "Chuyên đề: Công nghệ .NET";
ni.ContextMenuStrip = contextMenuStrip1;");//Bạn phải xây dựng một điều khiển ContextMenuStrip: contextMenuStrip1
ni.Visible = true;
//Đặt một số thuộc tính cho Form
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = true;
//Giờ bạn chạy để biết kết quả
}
3.3. Tạo Icon động dưới khay hệ thống
//Để tạo được Icon động trước hết bạn phải thêm điều khiển Timer vào form frmNotifyIcon
//Đặt một số thuộc tính cho điều khiển Timer này như sau: Interval=1000 (tương đương 1 giây) và Enabled = true
- 2 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
//Khai báo đối tượng NotifyIcon ở bên ngoài - Toàn cục
NotifyIcon ni = new NotifyIcon();
int i = 1;
//Sử dụng sự kiện Tick của điều khiển Timer để làm các icon động
private void timer1_Tick(object sender, EventArgs e)
{
//Copy 6 Icon vào thư mục bin: Icon1, Icon2, Icon3, icon4, icon5, Icon6
string FileIconName = "Icon" + i.ToString() + ".ico";
Icon ico = new Icon(FileIconName);
ni.Icon = ico;
ni.Visible = true;
this.ShowInTaskbar = true;
//Tăng i
i++;
if (i > 6)
i = 1;
}
3.4. Tạo Icon động dưới khay hệ thống (cách 2)
//Để tạo được Icon động trước hết bạn phải thêm điều khiển Timer vào form frmNotifyIcon
//Đặt một số thuộc tính cho điều khiển Timer này như sau: Interval=1000 (tương đương 1 giây) và Enabled = true
//Khai báo đối tượng NotifyIcon ở bên ngoài - Toàn cục
NotifyIcon ni = new NotifyIcon();
//Khai báo mảng Icon chứa các Icon
Icon[] MangIcon;
int Index = 0;
//Load các Icon vào mảng Icon
private void frmNotifyIcon_Load(object sender, EventArgs e)
- 3 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
{
//Copy 6 Icon vào thư mục bin: Icon0, Icon1, Icon2, Icon3, icon4, icon5
MangIcon = new Icon[6];
MangIcon[0] = new Icon("Icon0.ico");
MangIcon[1] = new Icon("Icon1.ico");
MangIcon[2] = new Icon("Icon2.ico");
MangIcon[3] = new Icon("Icon3.ico");
MangIcon[4] = new Icon("Icon4.ico");
MangIcon[5] = new Icon("Icon5.ico");
}
//Sử dụng sự kiện Tick của điều khiển Timer để làm các icon động
private void timer1_Tick(object sender, EventArgs e)
{
ni.Icon = MangIcon[Index];
ni.Visible = true;
this.ShowInTaskbar = true;
//Tăng Index và Kiểm tra
Index++;
if (Index > 5) Index = 0;
}
- 4 -
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
II. IMAGE LIST
***
1. Chức năng
Điều khiển ImageList dùng để quản lý tập các Image (Image, Icon…).
Thường sử dụng điều khiển ImageList với các điều khiển khác: ListView,
TreeView, Toolbar, NotifyIcon…
2. Một số thuộc tính thường dùng
Tên Ý nghĩa
Images Chứa danh sách các Image. Có thể đưa các Image hay Icon vào thông qua
giao diện (Cửa sổ Properties) hay mã lệnh (Tập các Image trong ImageList
là một Collection nên nó có đầy đủ các phương thức của Collection).
Truy xuất tới một Image trong ImageList theo cú pháp:
Tên_ImageList.Images[Index];
ImageSize Kích cỡ của Image (Mặc định là 16x16)
→ BT: Sử dụng điều khiển ImageList kết hợp với điều khiển NotifyIcon
viết chương trình tạo Icon động (không biết có làm được không? ^_^).
III. MENU STRIP
***
5
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
1. Chức năng
Điều khiển MenuStrip cho phép thiết kế hệ thống menu trên Form (menu
một cấp hay nhiều cấp). Ví dụ hệ thống menu của chương trình Word, Visual
Studio 2008….MenuStrip cho phép thiết kế menu với các điều khiển:
• ToolStripSeparator (Gạch phân cách)
• ToolStripMenuItem (Menu con).
• ToolStripCombobox (Combobox).
• ToolStripTextbox (Textbox)
2. Một số thuộc tính thường dùng của MenuStrip
Tên Ý nghĩa
TextDirection Chọn hình thức trình bày Menu (quay ngược, quay 90
0
…)
Items Thêm các menu con, kiểu của menu (Menu con, Textbox, Combobox, gạch
phân cách). Thông qua giao diện đồ họa bạn có thể thêm các menu vào (tập
các Items này là một Colleciton).
RightToLeft Nhận một trong hai giá trị Yes hay No
- Yes: trình bày menu từ phải qua trái
- No: trình bày menu từ trái qua phải
3. Các điều khiển bên trong MenuStrip
3.1. ToolStripSeparator (Gạch phân cách)
Điều khiển ToolStripSeparator dùng để phân cách giữa các menu
3.2. ToolStripMenuItem
3.2.1. Một số thuộc tính thường dùng
Tên Ý nghĩa
Checked Nhận một trong hai giá trị True hay False
- True: cho phép xuất hiện biểu tượng Checkbox bên cạnh chuỗi Text
của ToolStripMenuItem
- False: Ngược lại
CheckOnClick Nhận một trong hai giá trị True hay False
- True: Biểu tượng Checkbox xuất hiện bên cạnh chuỗi Text của
ToolStripMenuItem (MenuItem) mỗi khi người dùng Click chọn vào
nó
- False: Ngược lại
CheckState Trạng thái của Checkbox bên cạnh chuỗi Text của menu. Và nhận một
trong 3 giá trị: UnChecked, Checked, Indeterminate (Chú ý: Thuộc tính
6
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
Checked=True thì thuộc tính này mới có hiệu lực. Hiển nhiên rồi phải
không? ☺)
DisplayStyle Hình thức trình bày của Menu và nhận một trong 4 giá trị
- None: Không hiển thị gì cả (Text và Image)
- Text: Chỉ cho phép xuất hiện chuỗi mô tả
- Image: Chỉ cho phép xuất hiện ảnh( hoặc Icon) bên cạnh Text (xuất
hiện ở phía ngoài cùng bên trái)
- ImageAndText=Image+Text
Image Hình ảnh xuất hiện bên cạnh chuỗi Text (chuỗi khai báo bên trong thuộc
tính Text của MenuItem)
ImageScaling Chọn hình thức trình bày của ảnh xuất hiện bên cạnh chuỗi. Và nhận một
trong hai giá trị
- None: BÌnh thường
- SizeToFit: Hiển thị đúng kích cỡ của Image hay Icon.
ShortcutKeyDisplayString Chuỗi trình bày ứng với phím tắt mô tả cho MenuItem đó (Nối vào Text
của MenuItem ví dụ: Open Ctrl+O)
ShortcutKeys Chọn tổ hợp phím tắt ứng với MenuItem đó
ShowShortcutKeys Nhận một trong hai giá trị True hay False
- True: Cho phép trình bày chuỗi tổ hợp phím tắt của MenuItem (=True
thì thuộc tính ShortcutKeyDisplayString mới có hiệu lực).
- False: Ngược lại
Text Chuỗi trình bày MenuItem, bạn có thể sử dụng kí tự & trước kí tự để sử
dụng với phím Alt (phím nóng - phím tắt)
TooltipText Chuỗi trợ giúp khi người dùng di chuyển chuột đến điều khiển MenuItem
đó
Visible
3.2.2. Một số sự kiện thường dùng
Tên Ý nghĩa
CheckedChange Xảy ra khi trạng thái của Checkbox thay đổi
Click Xảy ra khi người sử dụng Click vào MenuItem
3.3. ToolStripCombobox
Các thuộc tính, phương thức, sự kiện của ToolStripCombobox giống
với điều khiển Combobox → Xem lại điều khiển Combobox
3.4. ToolStripTextbox (Textbox)
Các thuộc tính, phương thức, sự kiện của ToolStripTextbox giống với
điều khiển Combobox → Xem lại điều khiển Textbox
7
Chuyên đề 02: Công nghệ .NET
GV: Hoàng Quốc Việt
IV. CONTEXT MENU STRIP
***
1. Chức năng
Điều khiển ContextMenuStrip dùng để thiết kế menu popup (menu ngữ
cảnh – menu xuất hiện khi người dùng nhấn chuột phải. Ví dụ: khi người
dùng nhấn chuột phải vào Desktop xuất hiện một menu – đó chính là menu
ngữ popup) .
Để xuất hiện các menu Popup khi người dùng nhấn chuột phải vào các
điều khiển (form, button, label, textbox…) bạn chỉ cần khai báo thuộc tính
ContextMenuStrip của các điều khiển đó là một điều khiển ContextMenuStrip.
8