CHƢƠNG 6 MENU VÀ ĐỒ ÁN NHIỀU BIỂU MẪU
2. Popup menu ContextMenuStrip
Điều khiển ContextMenuStrip cho phép tạo menu ngữ cảnh, menu này chỉ xuất hiện khi ngƣời dùng kích chuột phải tại điều khiển gắn menu. Ta gắn menu ngữ cảnh cho một điều khiển thơng qua thuộc tính Context MenuStrip của điều khiển đó.
Điều khiển ContextMenuStrip có tiếp đầu ngữ là cmnu và có các thuộc tính và phƣơng thức tƣơng tự nhƣ điều khiển MenuStrip.
Bài tập 25.
Viết chƣơng trình tạo menu Popup có giao diện và các chức năng nhƣ sau:
Ngƣời dùng kích chuột phải tại vị trí bất kỳ trên Form, xuất hiện menu gồm 2 mục lựa chọn: Open và Save. Kích chọn mục Open sẽ xuất hiện hộp thoại Open cho phép chọn
một tệp văn bản bất kỳ có đi .rtf và hiển thị nội dung của tệp văn bản vào hộp
RichTextBox Văn bản 1.
Bơi đen các dịng văn bản trong hộp Văn bản 1 và kích chuột phải tại vị trí bất kỳ trong hộp Văn bản 1, xuất hiện menu gồm 4 mục lựa chọn: Copy, Cut, Paste và Delete. Kích
Bài giảng Cơ sở lập trình 2 100 Kích chuột phải tại vị trí bất kỳ trong hộp Văn bản 2 chọn Paste để gán nội dung dòng
văn bản trong ClipBoard vào hộp Văn bản 2.
Hình 45. Giao diện bài tập 25
Vào Microsoft Visual Studio 2010 tạo dự án mới có tên là MenuPopup và thiết lập giá trị
cho các thuộc tính của các điều khiển nhƣ sau:
Điều khiển Name Text Image Context MenuStrip
Shortcut Keys
Form1 frmMenuPopup Thiet ke
menu popup
cmnuFile
ContextMenu Strip1
cmnuFile
cmnuOpen Open Open.ico Ctrl + O
cmnuSave Save Save.ico Ctrl + S
ContextMenu Strip2 cmnuEdit cmnuCopy Copy Ctrl + C cmnuCut Cut Ctrl + X cmnuPaste Paste Ctrl + V
cmnuDelete Delete Delete.ico
Label1 Văn bản 1
Label2 Văn bản 2
RichTextBox1 rtbVanban1 cmnuEdit
Bài giảng Cơ sở lập trình 2 101
Viết Code: mở cửa sổ soạn thảo Code và viết các đoạn mã lệnh cho 2 mục menu cmnuCopy
và cmnuPaste… nhƣ sau:
private void cmnuCopy_Click(object sender, EventArgs e)
{
Clipboard.SetText(rtbVanban1.SelectedText); }
private void cmunPaste_Click(object sender, EventArgs e) { //rtbVanban2.Text = Clipboard.GetText(); // cách 1 //rtbVanban2.Text = rtbVanban2.Text.Insert(rtbVanban2.SelectionStart, Clipboard.GetText()); // Cách 2 rtbVanban2.SelectedText = Clipboard.GetText(); // cách 3 }
private void mnuCut_Click(object sender, EventArgs e) {
Clipboard.SetText(rtbVanban1.SelectedText); rtbVanban1.SelectedText = String.Empty; }
// Các mục menu khác sinh viên tự làm