ContextMenuStrip 右键菜单控件

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)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注