ContextMenuStrip 右键菜单控件
ContextMenuStrip 是一个右键菜单控件。当用户右击时,可以显示该控件。该控件可以配置菜单项。


显示右键菜单
点击窗体,在事件栏中找到 MouseClick 事件,双击生成:
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
this.contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
}Code language: JavaScript (javascript)
此时在窗体上右键点击,就会弹出右键菜单。

也可以直接设置窗体的 ContextMenuStrip 属性为 contextMenuStrip1,这样就不需要手动写 MouseClick 事件了。

响应菜单项点击
实现 ContextMenuStrip 的 ItemClicked 事件:
private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem == ((ContextMenuStrip)sender).Items[0])
{
MessageBox.Show(e.ClickedItem.Text);
}
}Code language: JavaScript (javascript)
此时只有点击第一项才会弹出提示。

常用属性
| 属性 | 说明 |
|---|---|
Items | 菜单项的集合 |
ShowImageMargin | 是否显示菜单项左侧的图片区域 |
ShowCheckMargin | 是否显示勾选区域 |
常用事件
| 事件 | 说明 |
|---|---|
ItemClicked | 菜单项被点击时触发 |
Opening | 菜单即将打开时触发 |
Closing | 菜单即将关闭时触发 |
简化写法
通过菜单项的 Click 事件直接绑定,比判断 ItemClicked 更直观:
// 在 Form_Load 中绑定
contextMenuStrip1.Items[0].Click += (s, ev) =>
{
MessageBox.Show("你点击了第一项");
};Code language: JavaScript (javascript)
Previous: 下拉框 ComboBox 控件
Next: DataGridView 表格数据控件