トレイに最小化された WinForm アプリケーションの開始
NotifyIcon を使用してトレイに最小化されるアプリケーションの作成は、多くの場合便利な機能です。ただし、非表示のウィンドウで最小化したアプリケーションを起動すると、問題が発生する可能性があります。
ある例では、アプリを最小化すると、最初は Alt-Tab ダイアログに表示されたままになります。 FormBorderStyle を ToolWindow オプションに変更することでこの問題を解決すると、新しい問題が発生します。起動中にウィンドウのタイトルバーがスタート メニューの上に一時的に表示されます。
これらの問題に対処するには、起動中にフォームがまったく表示されないようにすることを検討してください。これには、SetVisibleCore() メソッドをオーバーライドする必要があります。
protected override void SetVisibleCore(bool value) { if (!allowVisible) { value = false; if (!this.IsHandleCreated) CreateHandle(); } base.SetVisibleCore(value); }
allowVisible フラグは、フォームを表示するかどうかを示します。起動時に false に設定すると、WindowState が最初に Minimized に設定されている場合でもフォームが表示されなくなります。
さらに、システム メニューからフォームを閉じる処理を行うために OnFormClosing イベント ハンドラーをオーバーライドします。
protected override void OnFormClosing(FormClosingEventArgs e) { if (!allowClose) { this.Hide(); e.Cancel = true; } base.OnFormClosing(e); }
allowClose を false に設定すると、デフォルトの閉じる動作が抑制され、代わりにフォームが非表示になります。
NotifyIcon コンテキスト メニューでは、Show および Exit コマンドのハンドラーを定義して、フォームの表示とアプリケーションの終了をそれぞれ制御できます。
このアプローチにより、意図しない副作用を発生させることなく、トレイに最小化されたアプリケーションを起動できます。 NotifyIcon を主要なユーザー インターフェイス コンポーネントとして残します。
以上が可視性の問題を発生させずに、システム トレイに最小化された WinForms アプリケーションを起動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。