可能重复:
如何使启动表单最初不可见或隐藏
我的应用程序有一个系统托盘,我不希望窗口在启动时出现。
我怎样才能做到这一点?
这是默认的 Windows 窗体应用程序。
我拖过一个 notifyIcon 和一个 contexualMenuStrip
当表单关闭时,应用程序退出(也不希望这样)。但是当应用程序启动时,Windows 窗体也可见。那么如何在启动时不启动表单(而不是在关闭窗口时退出)?
基本上你需要覆盖SetVisibleCore()
来实现这一点......另一个选择是设置ShowInTaskbar
并false
使用ApplicationContext
in Application.Run
。
一些参考链接和示例代码:
答案不是隐藏您的主表单,而是首先显示/加载它。
一种方法是创建自定义ApplicationContext
:
public static class Program
{
public static void Main(string[] arguments)
{
var context = new NotifyIconApplicationContext();
context.Icon.Icon = new Icon(PATH_TO_ICON_FILE_HERE);
context.Icon.Visible = true;
Application.Run(context);
}
}
class NotifyIconApplicationContext : ApplicationContext
{
public NotifyIconApplicationContext()
{
Icon = new NotifyIcon();
}
public NotifyIcon Icon { get; set; }
}
然后,您可以在该行之前将处理程序附加到您的通知图标,Application.Run(context)
以允许打开主窗体、显示菜单等。