为 .NET 5/6 win 表单实现托盘图标上的菜单
Posted
技术标签:
【中文标题】为 .NET 5/6 win 表单实现托盘图标上的菜单【英文标题】:Implement a menu on tray icon for .NET 5/6 win forms 【发布时间】:2021-12-21 23:47:43 【问题描述】:在没有主窗体的 .NET Framework 4.8 winform 应用程序中,我有以下代码:
[STAThread]
public static void Main()
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Daemon());
public class Daemon : ApplicationContext
private readonly NotifyIcon trayIcon;
public Daemon()
trayIcon = new NotifyIcon()
Icon = "icon.ico",
ContextMenu = new ContextMenu(new MenuItem[]
new MenuItem("OPEN", new EventHandler(Open)),
new MenuItem("SETTINGS", new EventHandler(Settings)),
new MenuItem("EXIT", new EventHandler(Exit))
),
Visible = true
;
在 .NET 5(或 6)win 表单应用程序中,NotifyIcon
对象没有 ContextMenu
属性,而是一个我不明白如何使用的 ContextMenuStrip
。
如何在没有主窗体的应用程序的尝试图标上创建一个简单的菜单?
【问题讨论】:
【参考方案1】:这比预期的要简单。
public Daemon()
trayIcon = new NotifyIcon()
Icon = new Icon("icon.ico"),
ContextMenuStrip = new ContextMenuStrip(),
Visible = true
;
trayIcon.ContextMenuStrip.Items.AddRange(new ToolStripItem[]
new ToolStripMenuItem("OPEN", null, new EventHandler(Open), "OPEN"),
new ToolStripMenuItem("SETTINGS", null, new EventHandler(Settings), "SETTINGS"),
new ToolStripMenuItem("EXIT", null, new EventHandler(Exit), "EXIT")
);
【讨论】:
以上是关于为 .NET 5/6 win 表单实现托盘图标上的菜单的主要内容,如果未能解决你的问题,请参考以下文章