Thực đơn ngữ cảnh chia sẻ là loại thực đơn ngữ cảnh có thể gắn với nhiều điều khiển khác nhau. Khi một mục trên thực đơn ngữ cảnh của một điều khiện được Checked thì tất cả các điều khiển khác cũng chia sẻ trạng thái này.
Ví dụ sau đây minh họa bốn điều khiển gồm hai Button và hai CheckBox cùng chia sẻ chung một thực đơn ngữ cảnh, khi Check vào mục đầu tiên của thực đơn ngữ cảnh trên một Button hay một CheckBox thì mục tương ứng của các thực đơn ngữ cảnh trên các Button hay CheckBox khác cũng có trạng thái Check tương ứng.
Hình 10.1. Ví dụ Menu Shared ContextMenu
Khác với thực đơn ngữ cảnh thông thường, vị trí câu lệnh tạo thực đơn ngữ cảnh được không nằm giữa cặp thẻ của các điều khiển chứa nó mà được khai báo dưới dạng tài nguyên chung của Window.
Thuộc tính x:Key dùng để khai báo tên của ContextMenu, sẽ được dùng để gán cho các điều khiển muốn sử dụng ContextMenu này. Các điều khiển sẽ gắn ContextMenu nhờ thuộc tính
ContextMenu="{DynamicResource ContextMenuChiase}".
Chú ý, phải đặt giá trị cho x:Shared="True" thì ContextMenu này mới có thể được chia sẻ cho các điều khiển. Nếu đặt là x:Shared="False" thì các điều khiển vẫn sử dụng được MenuContext này, nhưng mỗi điều khiển có một thể hiện riêng của ContextMenu (không chia sẻ chung).
Câu hỏi ôn tập và bài tập
1. Trong các dòng mã lệnh sau đây, mã lệnh nào cho phép tạo và hiển thị một đối
tượng Windows Form mới có tên là Form1 a) Form1 frm = new Form1;
frm.Show();
b) Form Form1 = new Form(); Form1.Show();
c) Form1 frm ; frm.Show(); d) Form frm; frm.Show();
e) Form Form1 = new Form(); Form1.ShowDialog();
2. Trong các thuộc tính sau, thuộc tính nào dùng để thiết lập nội dung hiển thị trên
thanh title bar và thuộc tính nào dùng để thiết lập màu nền của form. a) Thuộc tính Text và ForeColor
b) Thuộc tính Display và BackColor c) Thuộc tính Text và BackColor
private void Form1_Click(object sender, EventArgs e) {
//Tạo đối tượng lớp Form
Form Form2 = new Form();//Thiết lập tiêu đề trên titlebar của form
Form2.Text = “Giao diện Form 2”; //Thiết lập vị trí hiển thị form
Form2.StartPosition = FormStartPosition.CenterScreen; //Thiết lập màu nền cho form
Form2.BackColor = Color.CadetBlue;
//Kiểm tra giá trị trả về của phương thức ShowDialog() //nếu giá trị trả về là DialogResult.Cancel thì Form2 //đã đóng, tiến hành đóng Form1 bằng phương thức
//Close() if (Form2.ShowDialog() == DialogResult.Cancel) { this.Close(); } }
d) Thuộc tính Display và ForeColor
3. Các thuộc tính sau, thuộc tính nào cho phép thiết lập form trở thành MdiForm
a) IsMdiContainer b) MdiParent c) MdiContainer d) ParentForm
4. Các thuộc tính sau, thuộc tính nào cho phép thiết lập form trở thành Child Form
a) IsMdiContainer b) MdiParent c) MdiContainer d) ParentForm
5. Trong các sự kiện sau, sự kiện nào sẽ phát sinh khi form đã đóng a) FormClosed b) FormClosing c) ClosedForm d) ClosingForm e) Load f) Click
Hình 10.12. Thiết kế form dạng tam giác
7. Thiết kế giao diện chương trình hiển thị thời gian như sau:
Hình 10.12. Thiết kế form hiển thị MenuStrip
Yêu cầu:
Menu Chức năng: Chức mục Thoát dạng MenuItem. Khi người dùng nhấn
chuột trái
vào Thoát hoặc nhấn tổ hợp phím Ctrl + T sẽ thoát chương trình.
Menu Nội dung hiển thị: Dạng ComboBox. ComboBox chứa hai mục chọn:
Hiển thị thời gian: Giúp hiển thị giờ phút giây trên label lblHienThi Hiển thị ngày tháng: Giúp hiển thị ngày tháng năm trên label lblHienThi
BÀI 11: TẠO STATUSBAR
Mã bài: 24.11 Giới thiệu:
Thanh công trạng thái là thanh nằm ngang, bên dưới đáy cửa sổ, gồm nhiều phần tử nhằm thể hiện thông tin về các trạng thái hoạt động của ứng dụng. Mỗi phần tử có thể là một văn bản, một biểu tượng hay một thanh tiến trình.
Mục tiêu:
- Biết công dụng của StatusBar - Thiết kế và sử dụng StatusBar - Sử dụng StatusBar đúng mục đích - Đảm bảo an toàn cho người và thiết bị
Nội dung chính: