Skip to content

ContextMenuStrip

ContextMenuStrip右键菜单控件,可以理解为一个悬浮的,位置任意的菜单栏

我们在工具栏中把ContextMenuStrip控件拖动到窗体中,不管拖动到哪个控件中,这个菜单都是没有父控件的

菜单栏的菜单项添加,和MenuStrip一致,菜单项的属性、事件也一致,右键菜单会显示在窗体控件下发,点击可编辑,如下所示

image-20250114094122473

添加好之后,运行发现鼠标点击是没反应的,因为右键菜单需要我们手动给别的控件添加事件

比如本案例中创建了一个Form1窗体和一个listBox,分贝给这两个控件添加右键菜单,代码如下所示

c#
// 给窗体控件添加右键事件,显示窗体右键菜单
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)  // 判断鼠标右键
    {
        contextMenuStrip1.Show(this, e.Location);
    }
}

// 给列表控件添加右键事件,显示列表右键菜单
private void listBox1_MouseUp(object sender, MouseEventArgs e)
{
    if(e.Button == MouseButtons.Right)
    {
        contextMenuStrip2.Show(listBox1, e.Location);
    }
}

效果如下所示

PixPin_2025-01-14_09-45-56

属性

Enabled

控制菜单项是否禁用

c#
menuItem.Enabled=

MIT Licensed