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: 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ộ
Trang 11 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:
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ốngConTextMenuStrip 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)
Trang 23.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
//Khai báo đối tượng NotifyIcon ở bên ngoài - Toàn cục
Trang 3NotifyIcon 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);
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)
{
Trang 4MangIcon = 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;
}
Trang 5II 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
vào thông qua giao diện (Cửa sổ Properties) hay mã lệnh (Tậpcá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
Trang 61 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:
TextDirection Chọn hình thức trình bày Menu (quay ngược, quay 900…)
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ộtColleciton)
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
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ạnhchuỗi Text của ToolStripMenuItem
- False: Ngược lạiCheckOnClick 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 Textcủa ToolStripMenuItem (MenuItem) mỗi khi người dùng
Trang 7Click chọn vào nó
- False: Ngược lạiCheckState 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 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ạnhText (xuất hiện ở phía ngoài cùng bên trái)
- ImageAndText=Image+TextImage 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ạiText 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
CheckedChange Xảy ra khi trạng thái của Checkbox thay đổi
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
Trang 8IV CONTEXT MENU STRIP
***
1 Chức năng
Trang 9Đ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.
Điều khiển ContextMenuStrip cho phép thiết kế menu với các điều khiển sau (tương tự như điều khiển MenuStrip)
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 (Collection)
RightToLeft Nhận một trong hai giá trị True hay False
- True: Trình bày menu từ phải qua trái (căn lề là bên phải)
- False: Trình bày menu từ trái qua phải (căn lề là bên trái)ShowImageMargin Hiển thị phần hình ảnh?
3 Các điều khiển bên trong ContextMenuStrip
→ Hoàn toàn tương tự các điều khiển bên trong điều khiển MenuStrip (ToolStripSeparator (Gạch phân cách), ToolStripMenuItem (Menu con), ToolStripCombobox (Combobox), ToolStripTextbox (Textbox))
Chú ý: Nhóm các điều khiển menu còn có một số điều khiển: MainMenu (không có sẵn trong hộp công cụ Toolbox), StatusStrip, ToolStrip
MỘT SỐ ĐIỀU KHIỂN HỘP THOẠI (DIALOG)
***
I OPEN FILE DIALOG
1 Chức năng
Trang 10trên hệ thống, kiểm tra xem một t ập tin có tồn tại hay không Trong trường hợp bạn có nhu cầu chọn một Foder (chứ không phải File) thì bạn chọn điều
AddExtension Nhận một trong hai giá trị True hay False
- True: Cho phép thêm vào tên mở rộng (.txt, jpg…) vàofile
- False: Ngược lạiCheckFileExists Nhận một trong hai giá trị True hay False
- True: Xuất hiện hộp cảnh báo nếu bạn nhập vào một tên
file không tồn tại (nhập vào ô File name: trên hộp thoại
dùng không cung cấp tên mở rộng cho tập tin
Filter Chọn bộ lọc cho hộp thoại (Chỉ chọn File nào) Ví dụ:
File Text (*.txt)|*.txt| Word File (*.doc)|*.doc;
FilterIndex Chọn số thứ tự cho bộ lọc (bộ lọc sẽ hiển thị trong mục Files
Of Types)
FileName Set or Get tên tệp tin bạn chọn
FileNames Set or Get mảng chứa tệp tin chọn (trong trường hợp chọn
nhiều tập tin)InitialDirectory Đường dẫn mặc định khi hộp thoại OpenFileDialog mở raMultiselect Nhận một trong hai giá trị True hay False
- True: Cho phép bạn chọn nhiều tập tin (ví du: Chọn nhiềubản nhạc để nghe…)
- False: Ngược lạiReadOnlyChecked Nhận một trong hai giá trị True hay False
- True: Check vào hộp thoại Checkbox Open as Read-Only bên dưới Combobox Files Of Types
- False: Ngược lại (☻)
(với điều kiện thuộc tính ShowReadOnly = True)
RestoreDirectory Nhận một trong hai giá trị True hay False
- True: Mở lại thư mục vừa mở ra lần trước, với điều kiện
thuộc tính InitialDirectory không đặt gì
- False: Không mở lại thư mục vừa mở lần trước ShowReadOnly Nhận một trong hai giá trị True hay False
- True: Xuất hiện hộp Checkbox Open as Read-Only bên dưới Combobox Files Of Types
- False: Ngược lại
Trang 11Title Đặt tiêu đề (xuất hiện trên Titlebar) cho hộp thoại
OpenFileDialog
3 Minh họa sử dụng hộp thoại OpenFileDialog
Giả sử chúng ta có một form có tên: frmOpenFileDialog, trên form có một điều khiển Textbox có tên Textbox1và một điều khiển OpenFileDialog có tên
openFileDialog1 Chúng ta sử dụng hộp thoại OpenFileDialog để load nội
dung một tệp text vào Textbox
Trang 12{
//Đặt một số thuộc tính bằng Code
openFileDialog1.AddExtension = false;
openFileDialog1.CheckFileExists = true;
openFileDialog1.ReadOnlyChecked = true;//Check vào checkbox ->thuộc tính ShowReadOnly = true
openFileDialog1.Filter = "File Text (*.txt)|*.txt| File Rtf (*.rtf)|*.rtf| All File|*.*";
openFileDialog1.FilterIndex = 0;//Chọn bộ lọc "File Text (*.txt)|*.txt" -> Chỉ chọn file Text
openFileDialog1.FileName = "";//thay cho chuỗi openFileDialog1 xuất hiện trong hộp FileName
openFileDialog1.InitialDirectory = "C:\\"; //Mở ổ C khi hộp thoại này hiển thị
openFileDialog1.Multiselect = true;
openFileDialog1.ShowReadOnly = true;//Xuất hiện Checkbox
openFileDialog1.Title = "Cong nghe NET";
//Kiển tra hộp thoại có mở ra không
//Sử dụng phương thức ShowDialog()
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//Lấy về File bạn chọn Giả sử tôi chọn File C:\CongNgheNET.txt
string FileBanChon = openFileDialog1.FileName;
Trang 13II SAVE FILE DIALOG
AddExtension Nhận một trong hai giá trị True hay False
- True: Cho phép thêm vào tên mở rộng (.txt, jpg…)
- False: Ngược lạiCheckFileExists Nhận một trong hai giá trị True hay False
- True: Xuất hiện hộp cảnh báo nếu bạn nhập vào một tên
file không tồn tại (nhập vào ô File name: trên hộp thoại
File Text (*.txt)|*.txt| Word File (*.doc)|*.doc;
FilterIndex Chọn số thứ tự cho bộ lọc (bộ lọc sẽ hiển thị trong mục Files
Of Types)
FileName Set or Get tên tệp tin
InitialDirectory Đường dẫn mặc định khi hộp thoại SaveFileDialog mở raRestoreDirectory Nhận một trong hai giá trị True hay False
- True: Mở lại thư mục vừa mở ra lần trước, với điều kiện
thuộc tính InitialDirectory không đặt gì
- False: Không mở lại thư mục vừa mở lần trước Title Đặt tiêu đề (xuất hiện trên Titlebar) cho hộp thoại
SaveFileDialogShowHelp Cho phép xuất hiện Button Help (?) hay không?
OverwritePrompt Xuất hiện cảnh báo nếu bạn ghi đè vào một tập tin đã tồn tại
3 Minh họa sử dụng SaveFileDialog
Giả sử chúng ta có một form có tên: frmSaveFileDialog, trên form có một điều khiển Textbox có tên Textbox1và một điều khiển SaveFileDialog có tên
saveFileDialog1 Chúng ta sử dụng hộp thoại SaveFileDialog để ghi nội dung
Textbox vào một tệp Text qua sự kiện Click của một Button có tên btSave
Trang 14{
//Đặt một số thuộc tính bằng Code
saveFileDialog1.AddExtension = true;//Cho phép thêm vào tên mở rộng
saveFileDialog1.OverwritePrompt = true;//Xuất hiện cảnh báo nếu tập tin đã tồn tại
saveFileDialog1.DefaultExt = "txt";//Chạy nếu: saveFileDialog1.AddExtension = true
saveFileDialog1.CheckPathExists = true;//Kiểm tra đường dẫn có hợp lệ hay không
saveFileDialog1.FileName = "";
saveFileDialog1.Filter = "Text File (*.txt)|*.txt";
saveFileDialog1.FilterIndex = 0;
//saveFileDialog1.InitialDirectory = "C:\\";//Chọn đường dẫn khi hộp thoại mở ra
saveFileDialog1.RestoreDirectory = true;//ĐK không đặt saveFileDialog1.InitialDirectory
//Lấy ra tên file cần ghi
string strFileSave = saveFileDialog1.FileName;
Trang 15IV FOLDER BROWSER DIALOG
***
1 Chức năng
Điều khiển FolderBrowserDialog cho phép người dùng chọn (Select) thư
mục đang tồn tại trong hệ thống, đồng thời có thể tạo mới thư mục ngay trong thư mục đang chọn (Chú ý: Điều khiển OpenFileDialog chỉ cho phép chọn file).
- True: Xuất hiện Buttons Make New Folder cho phép
người dùng tạo ra thư mục mới trong thư mục bạn chọn
- False: Ngược lại
V Minh họa sử dụng hộp thoại FolderBrowserDialog
Chúng ta minh họa sử dụng điều khiển FolderBrowsersDialog qua ứng dụng tạo Slide ảnh.
Giả sử chúng ta có một form có tên: frmFolderBrowserDialog, trên form có
chứa một số điều khiển sau:
PictureBox có tên pictureBox1 để hiển thị ảnh
Điều khiển folderBrowserDialog có tên folderBrowserDialog1 dùng
để chọn thư mục chứa ảnh
Điều khiển Timer có tên timer1
Button có tên btOpen
→ XEM CODE TRONG PROJECT KÈM THEO (frmFolderBrowserDialog)