トレイに最小化された WinForm アプリケーションの起動
トレイに最小化された WinForm アプリケーションを作成すると、アプリの起動時に問題が発生する可能性があります最小化された。これにより、アプリの起動時にタイトルバーのアーティファクトが表示されたり、不適切な動作が発生したりする可能性があります。
問題: アプリは最小化されるが Alt-Tab に表示される
この問題に対処するには、 FormBorderStyle プロパティを次のいずれかに設定します。 ツールウィンドウ オプション。ただし、これにより、アプリを最小化して起動するとタイトルバーが一時的に表示されるという新たな問題が発生する可能性があります。
解決策: SetVisibleCore() をオーバーライドします
表示されるアーティファクトなしでアプリを最小化するには、SetVisibleCore() メソッドをオーバーライドします。実装は次のとおりです。
protected override void SetVisibleCore(bool value) { if (!allowVisible) { value = false; if (!this.IsHandleCreated) CreateHandle(); } base.SetVisibleCore(value); }
この例では、allowVisible フラグにより、ユーザーが明示的に要求した場合にのみフォームが表示されるようにします。
ハンドル フォーム閉じる
タスクバーからアプリを閉じないようにするには、またはalt-tab を最小化すると、OnFormClosing() メソッドをオーバーライドします。
protected override void OnFormClosing(FormClosingEventArgs e) { if (!allowClose) { this.Hide(); e.Cancel = true; } base.OnFormClosing(e); }
allowClose フラグにより、ユーザーが明示的に要求した場合にのみフォームが閉じられるようになります。
追加考慮事項
Load イベントは、フォームが最初に表示されるまで発生しないことに注意してください。したがって、Load イベント ハンドラーではなく、フォームのコンストラクターで初期化を実行します。
以上がアーティファクトなしでシステム トレイに最小化された WinForms アプリを起動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。