0

重複の可能性:
スタートアップフォームを最初は非表示または非表示にする方法

私のアプリケーションにはシステムトレイがあり、起動時にウィンドウが表示されないようにします。

どうすればこれを達成できますか?


これはデフォルトのWindowsフォームアプリケーションです。

notifyIconとcontexualMenuStripをドラッグしました

フォームを閉じると、アプリケーションは終了します(これも必要ありません)。ただし、アプリケーションを起動すると、Windowsフォームも表示されます。では、起動時にフォームを起動しない(そしてウィンドウを閉じるときに終了しない)にはどうすればよいですか?

4

2 に答える 2

1

基本的に、それを実現するには上書きする必要がありますSetVisibleCore()...別のオプションはに設定ShowInTaskbarしてfalseで使用することApplicationContextですApplication.Run

いくつかの参照リンクとサンプルコード:

于 2012-02-09T17:12:58.587 に答える
0

答えは、メインフォームを非表示にすることではなく、最初に表示/ロードすることではありません。

1つの方法は、カスタムを作成することです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 に答える