【发布时间】:2018-05-13 22:54:13
【问题描述】:
我在 c# 中有一个简单的托盘应用程序。我想要做的是在左键单击时打开上下文菜单。目前它只在右键单击时打开。这似乎是标准行为。
我设法在左键单击时做出反应,但我不知道如何以编程方式打开 contextMenu。有什么想法吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Drawing;
namespace trackingCore
{
static class Program
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
NotifyIcon notifyIcon1 = new NotifyIcon();
ContextMenu contextMenu1 = new ContextMenu();
MenuItem menuItem0 = new MenuItem();
MenuItem menuItem1 = new MenuItem();
MenuItem menuItem2 = new MenuItem();
contextMenu1.MenuItems.AddRange(new MenuItem[] { menuItem0 });
contextMenu1.MenuItems.AddRange(new MenuItem[] { menuItem1 });
contextMenu1.MenuItems.AddRange(new MenuItem[] { menuItem2 });
menuItem0.Index = 0;
menuItem0.Text = "open test";
menuItem0.Click += new EventHandler(menuItem1_Click);
menuItem1.Index = 1;
menuItem1.Text = "stop test";
menuItem1.Click += new EventHandler(menuItem1_Click);
menuItem2.Index = 2;
menuItem2.Text = "close test";
menuItem2.Click += new EventHandler(menuItem1_Click);
notifyIcon1.Icon = new Icon("test.ico");
notifyIcon1.Text = "testitest";
notifyIcon1.ContextMenu = contextMenu1;
notifyIcon1.Click += new EventHandler(menuItem1_Click);
notifyIcon1.Visible = true;
Application.Run();
notifyIcon1.Visible = false;
}
private static void menuItem1_Click(object Sender, EventArgs e)
{
Application.Exit();
}
private static void iconClick(object Sender, EventArgs e)
{
Console.Write("open context menu with left click");
}
}
}
有些解决方案表示 contextMenu1.Show 将是解决方案。但是显示功能需要两个参数,我不知道哪些是正确的。它曾经只有一个参数。有任何想法吗?
【问题讨论】:
-
不是重复的。您所指的帖子是 2010 年的。解决方案在 2017 年不起作用
-
你是说在
ContextMenuStrip上调用Show没有显示出来? -
显示需要不同的参数。我说不清是哪几个。以前需要一个参数,现在需要两个。
-
你说你不知道它需要哪两个参数。它在文档中。
标签: c# .net visual-studio visual-studio-2017