【发布时间】:2010-12-09 17:18:26
【问题描述】:
我的意思是当用户启动我的应用程序(exe)时。我希望它直接在系统托盘中启动,而不显示窗口。像杀毒软件和下载管理器,它们在系统托盘中静默启动和运行。
我想要相同的效果,当用户单击 notifyIcon 的 contextmenustrip 的“显示”按钮时,只有应用程序应该显示 GUI。
我正在使用它,但它不起作用
private void Form_Load(object sender, EventArgs e)
{
this.Hide();
}
可能我需要在没有 GUI 但具有 notifyIcon 和 ContextMenuStrip 的其他类中具有 Main() 函数,其选项将实例化 GUI 窗口类。对吧?
【问题讨论】:
-
另请参阅此问题 - stackoverflow.com/questions/807005/…
-
不好意思扯了个老话题。除了一件重要的事情,我得到了一切。我知道
Application.Run()基本上放弃了控制(?)。我想要做的是让代码在没有用户交互的情况下做一些事情(比如它正在处理数据并将其写入文件)。我应该把这段代码放在哪里,以便它在程序位于系统托盘中时执行? -
@BarryDysert:
Application.Run()启动 Windows 消息泵。如果您在某处没有此呼叫,那么您的托盘图标将根本不起作用。在不了解您实际想要实现的目标的情况下,我会说查看线程,只需注意修改线程上的 UI 内容的问题,而不是调用Application.Run()的线程。