0

可能重复:
如何使启动表单最初不可见或隐藏

我的应用程序有一个系统托盘,我不希望窗口在启动时出现。

我怎样才能做到这一点?


这是默认的 Windows 窗体应用程序。

我拖过一个 notifyIcon 和一个 contexualMenuStrip

当表单关闭时,应用程序退出(也不希望这样)。但是当应用程序启动时,Windows 窗体也可见。那么如何在启动时不启动表单(而不是在关闭窗口时退出)?

4

2 回答 2

1

基本上你需要覆盖SetVisibleCore()来实现这一点......另一个选择是设置ShowInTaskbarfalse使用ApplicationContextin Application.Run

一些参考链接和示例代码:

于 2012-02-09T17:12:58.587 回答
0

答案不是隐藏您的主表单,而是首先显示/加载它

一种方法是创建自定义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)以允许打开主窗体、显示菜单等。

于 2012-02-09T17:22:04.350 回答