我按照常用链接提示将应用程序减少到系统托盘:http://www.developer.com/net/csharp/article.php/3336751现在它可以工作,但仍然存在问题:我的应用程序已显示什么时候开始; 我希望它直接在系统托盘中启动.我试图在Load事件中最小化并隐藏它,但它什么也没做.
编辑:我可以,如海报建议,修改快捷方式属性,但我宁愿使用代码:我没有完全控制安装软件的每台计算机.
我不想从除了systray之外的任何地方完全删除它,我只想让它最小化.
有任何想法吗 ?
谢谢
在你的主程序中,你可能有一行表格:
Application.Run(new Form1());
这将强制显示表单.您需要创建表单,但不要将其传递给Application.Run
:
Form1 form = new Form1(); Application.Run();
请注意,在您致电之前,该程序现在不会终止Application.ExitThread()
.最好从FormClosed
事件的处理程序执行此操作.
private void Form1_FormClosed(object sender, FormClosedEventArgs e) { Application.ExitThread(); }
这就是你如何做到的
static class Program { [STAThread] static void Main() { NotifyIcon icon = new NotifyIcon(); icon.Icon = System.Drawing.SystemIcons.Application; icon.Click += delegate { MessageBox.Show("Bye!"); icon.Visible = false; Application.Exit(); }; icon.Visible = true; Application.Run(); } }