gpt4 book ai didi

c# - 带有 c# 控制台应用程序的系统托盘图标不会显示菜单

转载 作者:太空狗 更新时间:2023-10-29 20:49:22 27 4
gpt4 key购买 nike

我有一个小型 C# (.NET 4.0) 控制台应用程序,我希望用户在右键单击系统托盘图标时能够通过显示菜单进行交互。我可以毫无问题地向托盘添加图标,但我就是无法显示菜单。我正在使用以下代码:

NotifyIcon trayIcon = new NotifyIcon();
trayIcon.Text = "TestApp";
trayIcon.Icon = new Icon(SystemIcons.Application, 40, 40);

ContextMenu trayMenu = new ContextMenu();

trayMenu.MenuItems.Add("Blah", item1_Click);
trayMenu.MenuItems.Add("Blah2", item1_Click);
trayMenu.MenuItems.Add("Blah3", item1_Click);

trayIcon.ContextMenu = trayMenu;
trayIcon.Visible = true;

... 将图标放入托盘。但是,右键单击该图标没有任何作用。我已经尝试了 MenuItems.Add 的各种排列组合,但没有任何方法会显示菜单。我确定我遗漏了一些简单的东西 - 有什么想法吗?

最佳答案

尝试在创建图标后添加:

Application.Run()

注意这个方法不会返回,所以调用后不能做任何事情。这意味着您必须在单独的线程中完成所有其他工作。

发生的事情是操作系统向您的应用程序发送一条消息,告诉它托盘图标已被右键单击,但托盘图标代码从未看到它(因为这些消息由 Application.Run) 等无法通过打开菜单进行响应。

关于c# - 带有 c# 控制台应用程序的系统托盘图标不会显示菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com