Visual Studio 向项目添加右键单击菜单

9rbhqvlz  于 8个月前  发布在  其他
关注(0)|答案(5)|浏览(230)

我一直在寻找一个简单的右键单击菜单的一个单一的项目。例如,如果我右键单击一张图片,我希望有一个小菜单来显示我自己的标签:添加、删除等如果有人能帮助我,我将非常感激。
谢谢你的帮忙
下面是完整的代码:

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;
qnzebej0

qnzebej01#

将contextmenu添加到窗体中,然后在ContextMenuStrip下的控件属性中分配它.

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

u0sqgete2#

这是对这个问题的全面回答。我这样做是因为这个页面在谷歌搜索结果中排名很高,而且答案不够详细。这篇文章假设你有能力使用Visual Studio C#表单。这是基于VS 2012。
1.首先,只需将ContextMenuStrip拖到窗体上。它将只是把它放在左上角,在那里你可以添加你的菜单项,并重新命名为您认为合适的。
1.您将不得不查看代码并在表单上自己输入事件。为有问题的项目创建一个鼠标按下事件,然后为它分配一个右键单击事件,如下所示(我将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;
    }
}

1.将事件处理程序手动分配给form.designer(您可能需要为System.Windows.Forms添加一个“using”;你可以解决它):

this.pictureBox1.MouseDown += new MouseEventHandler(this.pictureBox1_MouseDown);

1.此时所需要做的就是简单地双击每个菜单项,并以与处理任何其他按钮相同的方式对每个单击事件执行所需的操作。
这是该操作的基本代码。显然,您可以修改它以适应您的编码实践。

w3nuxt5m

w3nuxt5m3#

如果你使用的是Visual Studio,也有一个GUI解决方案:
1.从菜单中添加 ContextMenuStrip
1.选择上下文菜单并添加右键单击项
1.对于每个项,将单击事件设置为相应的函数
1.选择右键菜单将连接的表单/ button / image / etc(任何项目
1.将其 ContextMenuStrip 属性设置为您创建的菜单。

ac1kyiln

ac1kyiln4#

在处理完这个问题之后,它对kjnow很有用,e.X / e.Y点是相对于控件的,所以如果(像我一样)你要向列表视图或类似的东西添加上下文菜单,你会想用表单的原点来调整它。在下面的例子中,我在x/y上加了20,这样菜单就稍微向右出现在光标下面。

cmDelete.Show(this, new Point(e.X + ((Control)sender).Left+20, e.Y + ((Control)sender).Top+20));
6xfqseft

6xfqseft5#

使用Visual Studio非常容易正如Dorku所说,但是我会一步一步地详细说明。

  • 后藤视图->工具箱
  • 在搜索工具箱中输入“上下文”
  • 双击工具箱上的“ContextMenuStrip”
  • 右键单击表单上的“ContextMenuStrip 1”,转到属性并根据需要重命名,例如:“ContextMenuStripReports”
  • 右键单击“ContextMenuStripReports”转到属性,然后单击省略号(...按钮)并添加如下菜单项
  • toolStripMenuItem1
  • toolStripMenuItem2
  • 打开您的表单。Designer.cs搜索toolStripMenuItem 1添加到下面

this.toolStripMenuItem1.Click += ToolStripMenuItem1_Click;

  • 对toolStripMenuItem 2执行相同的操作
  • 打开yourform.cs
private void ToolStripMenuItem1_Click(object sender, System.EventArgs e)     
{    }    
private void ToolStripMenuItem2_Click(object sender, System.EventArgs e)     
{    }
  • 右键单击表单->属性

将ContextMenuStrip属性设置为ContextMenuStripReports

相关问题