在控制台应用程序中有一个系统托盘,在 C# 中有一个菜单
Having a System tray in a Console Application with a menu in C#
我搜索了这个网站和许多其他资源,试图找到它。
我有一个控制台应用程序,我正在尝试为其添加系统托盘图标。
那部分有效。
我无法真正开始工作的是当我右键单击时向它添加一个菜单。我真的只需要一个可以关闭它的退出按钮。
我的整个 class 很小,所以我会把它包括在内。我已经在我的 main 方法中初始化了这个对象,这几乎是我所需要的,因为我是从构造函数中驱动它的。我找到了表明我不需要点击事件的资源,但我都试过了,所以我不太确定。
我已经尝试从其他资源中将其拼凑在一起,但每个人的问题似乎都略有不同,或者我遗漏了一些东西。
感谢观看。
namespace PvsMessageLogger
{
public class SystemTray
{
private readonly string _systemDisplayName;
private readonly NotifyIcon _systemTray;
public SystemTray(string systemDisplayName)
{
_systemTray = new NotifyIcon();
_systemDisplayName = systemDisplayName;
InitializeSystemTray();
}
private void InitializeSystemTray()
{
_systemTray.Icon = new Icon(SystemIcons.Application, 40, 40);
_systemTray.Visible = true;
_systemTray.BalloonTipTitle = _systemDisplayName;
_systemTray.BalloonTipText = _systemDisplayName + " is running in the background";
MenuItem[] menuList = {new MenuItem("Exit", (s, e) => Application.Exit()) };
ContextMenu clickMenu = new ContextMenu(menuList);
_systemTray.ContextMenu = clickMenu;
_systemTray.ShowBalloonTip(1000);
}
}
}
刚刚在另一个帖子中找到了答案,您必须在创建图标后添加Application.Run()。
您可以在 Roman 的 answer 上找到更多详细信息。
我搜索了这个网站和许多其他资源,试图找到它。
我有一个控制台应用程序,我正在尝试为其添加系统托盘图标。
那部分有效。
我无法真正开始工作的是当我右键单击时向它添加一个菜单。我真的只需要一个可以关闭它的退出按钮。
我的整个 class 很小,所以我会把它包括在内。我已经在我的 main 方法中初始化了这个对象,这几乎是我所需要的,因为我是从构造函数中驱动它的。我找到了表明我不需要点击事件的资源,但我都试过了,所以我不太确定。
我已经尝试从其他资源中将其拼凑在一起,但每个人的问题似乎都略有不同,或者我遗漏了一些东西。
感谢观看。
namespace PvsMessageLogger
{
public class SystemTray
{
private readonly string _systemDisplayName;
private readonly NotifyIcon _systemTray;
public SystemTray(string systemDisplayName)
{
_systemTray = new NotifyIcon();
_systemDisplayName = systemDisplayName;
InitializeSystemTray();
}
private void InitializeSystemTray()
{
_systemTray.Icon = new Icon(SystemIcons.Application, 40, 40);
_systemTray.Visible = true;
_systemTray.BalloonTipTitle = _systemDisplayName;
_systemTray.BalloonTipText = _systemDisplayName + " is running in the background";
MenuItem[] menuList = {new MenuItem("Exit", (s, e) => Application.Exit()) };
ContextMenu clickMenu = new ContextMenu(menuList);
_systemTray.ContextMenu = clickMenu;
_systemTray.ShowBalloonTip(1000);
}
}
}
刚刚在另一个帖子中找到了答案,您必须在创建图标后添加Application.Run()。
您可以在 Roman 的 answer 上找到更多详细信息。