起動時に WinForm アプリケーションをトレイに最小化する
問題
WinForm アプリケーションの作成トレイに最小化するのは簡単です。ただし、最小化された状態でアプリケーションを起動しようとすると、アプリケーションが Alt-Tab ダイアログに表示され、タイトルバーが表示される場合があります。
解決策
アプリケーションが起動時に表示されないようにするには、SetVisibleCore() メソッドをオーバーライドできます。これには以下が含まれます:
protected override void SetVisibleCore(bool value) { if (!allowVisible) { value = false; if (!this.IsHandleCreated) CreateHandle(); } base.SetVisibleCore(value); }
ここで、allowVisible は、アプリケーションをいつ表示するかを示すために設定されたフラグです (たとえば、ユーザーが NotifyIcon コンテキスト メニューで [表示] をクリックしたとき)。 allowVisible が false の場合、value パラメーターは false に設定され、フォームが表示されなくなります。ただし、フォームのハンドルが作成されていない場合は、値を false に設定する前にハンドルを作成する必要があります。
さらに、ユーザーがタスク バー アイコンをダブルクリックしたときにアプリケーションが閉じないようにするには、OnFormClosing メソッドを次のようにします。 overridden:
protected override void OnFormClosing(FormClosingEventArgs e) { if (!allowClose) { this.Hide(); e.Cancel = true; } base.OnFormClosing(e); }
ここで、allowClose は、アプリケーションを閉じる必要があるとき (ユーザーがクリックしたときなど) を示すために設定されたフラグです。 NotifyIcon コンテキスト メニューの「終了」)。 allowClose が false の場合、フォームは非表示になり、アプリケーションが終了しないように e.Cancel プロパティが true に設定されます。
補足
の Load イベントメイン フォームは、フォームが最初に表示されるまで起動されません。したがって、初期化は Load イベント ハンドラーではなくフォームのコンストラクターで行う必要があります。
以上がWinForm アプリが予期せず表示されずにシステム トレイに最小化されて起動するようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。