3.21 快捷菜单 (ContextMenu)
使用过 Word 程序的人都知道,在其程序窗口的不同位置单击右键,会出现不同弹出菜
单,这个弹出菜单叫快捷菜单, 这节介绍如何在应用程序中增加快捷菜单。 快捷菜单和主菜
单的属性、事件和方法基本一致,只是快捷菜单没有*菜单项,因此这里就不多介绍了。
例子 e3.12
例子在窗口中显示一行字符串,加入两个按纽,单击按纽 button1 把字符串变为红色,
单击按纽 button2 把字符串变为黑色。 为两个按钮建立快捷菜单, 快捷菜单中有 2 个菜单项,
单击菜单项把字符串变为红色或黑色。为窗体建立快捷菜单,菜单中仅有 1 个退出菜单项,
单击退出菜单项,退出程序。具体实现步骤如下:
(1) 建立一个新项目。放 Label 控件到窗体。
(2) 放 2 个 Button 控件到窗体,标题(属性 Text)分别为红色,黑色。
(3) 标题为红色的按钮的单击事件处理函数如下:
private void button1_Click( object sender, System.EventArgs e)
{ label1.ForeColor=Color.Red;}
(4) 标题为黑色的按钮的单击事件处理函数如下:
private void button2_Click( object sender, System.EventArgs e)
{ label1.ForeColor=Color.Black;}
(5) 放 1 个ContextMenuStrip 控件到窗体,属性 Name分别为 contextMenuStrip1。
(6) 选中 contextMenuStrip1控件,在菜单编辑器中增加两个标题分别为红色和黑色的菜单项,
它们的单击事件处理函数分别是单击红色按钮和单击黑色按钮的事件处理函数。
(7) 在Form1中选择MouseClick创建Form1_MouseClick事件,添加
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)// 如果是单击右键
{
contextMenuStrip1.Visible = true;
Point p1 = MousePosition;//鼠标相对于屏幕的坐标
//Point p2 = PointToClient(MousePosition);//鼠标相对于窗体的坐标
contextMenuStrip1.Show(p1);
}
}
(9) 编译,运行 , 右击,快捷菜单。