向项目添加右键菜单

Mar*_*hal 42 c# menu right-click visual-studio winforms

我一直在搜索单个项目的简单右键菜单.例如,如果我右键单击图片,我想要一个小菜单来提出我自己的标签:添加,删除等.如果有人可以提供帮助,我会非常感激.

谢谢你的期待.

这是完成的代码:

    ContextMenu cm = new ContextMenu();             
    cm.MenuItems.Add("Item 1", new EventHandler(Removepicture_Click));             
    cm.MenuItems.Add("Item 2", new EventHandler(Addpicture_Click));              
    pictureBox1.ContextMenu = cm; 
Run Code Online (Sandbox Code Playgroud)

Yuk*_*uya 72

将上下文菜单添加到表单,然后在ContextMenuStrip下的控件属性中分配它.希望这可以帮助 :).

希望这可以帮助:

ContextMenu cm = new ContextMenu();
cm.MenuItems.Add("Item 1");
cm.MenuItems.Add("Item 2");

pictureBox1.ContextMenu = cm;
Run Code Online (Sandbox Code Playgroud)


Che*_*ast 30

这是对这个问题的全面回答.我这样做是因为此页面在Google搜索结果中占据了很高的位置,答案并没有详细说明.本文假设您有能力使用Visual Studio C#表单.这基于VS2012.

  1. 首先,只需将ContextMenuStrip拖到表单上即可.它会将它放在左上角,您可以在其中添加菜单项并根据需要重命名.

  2. 您必须查看代码并在表单上自行输入活动.为相关项创建一个鼠标按下事件,然后为它分配一个右键单击事件(我已调用ContextMenuStrip"rightClickMenuStrip"):

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
    switch (e.Button)
        {
            case MouseButtons.Right:
            {
                rightClickMenuStrip.Show(this, new Point(e.X, e.Y));//places the menu at the pointer position
            }
            break;
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 手动将事件处理程序分配给form.designer(您可能需要为System.Windows.Forms添加"using";您可以解决它):

    this.pictureBox1.MouseDown += new MouseEventHandler(this.pictureBox1_MouseDown);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 此时所需要的只是双击每个菜单项,并按照与任何其他按钮相同的方式对每个单击事件执行所需的操作.

这是此操作的基本代码.您可以明显地修改它以适应您的编码实践.

  • 除非发布此答案后发生了某些变化,否则您无需在代码中手动指定`MouseDown`事件.您所要做的就是将`ContextMenuStrip`属性设置为要与其关联的控件的正确`ContextMenuStrip`.这样可以减少步骤2和3(尽管为步骤2添加了更小的步骤2). (4认同)
  • 在 VS2019 中仍然有效 (2认同)

小智 13

如果您使用的是Visual Studio,那么还有一个GUI解决方案:

  1. 从工具箱添加ContextMenuStrip
  2. 选择上下文菜单并添加右键单击项
  3. 对于每个项目,将单击事件设置为相应的功能
  4. 选择右键菜单将连接的表单/按钮/图像/等(任何项目)
  5. 将其ContextMenuStrip属性设置为您创建的菜单.