質問: true; 私が言ったように、私はこれについて多くのマイナーなバリエーションを試しました(this.hide()など)。 notifyiconを実行したままでフォームを完全に開始および破棄できるように、notifyiconをプライマリコンポーネントにする方法はありますか?奇妙さのない最小化されたフォームでアプリを起動する方法がなければなりません。見つけてください!
回答: これを行う正しい方法は、そもそもフォームが表示されないようにすることです。それにはsetvisiblecore()をオーバーライドする必要があります。 show and exitコマンドを使用したnotifyiconのコンテキストメニューを想定します。次のように実装できます。public partial class form1 : form { public form1() { initializecomponent(); notifyicon1.contextmenustrip = contextmenustrip1; this.showtoolstripmenuitem.click += showtoolstripmenuitem_click; this.exittoolstripmenuitem.click += exittoolstripmenuitem_click; } private bool allowvisible; // contextmenu's show command used private bool allowclose; // contextmenu's exit command used protected override void setvisiblecore(bool value) { if (!allowvisible) { value = false; if (!this.ishandlecreated) createhandle(); } base.setvisiblecore(value); } protected override void onformclosing(formclosingeventargs e) { if (!allowclose) { this.hide(); e.cancel = true; } base.onformclosing(e); } private void showtoolstripmenuitem_click(object sender, eventargs e) { allowvisible = true; show(); } private void exittoolstripmenuitem_click(object sender, eventargs e) { allowclose = true; application.exit(); } } loadイベントのしわに注意してください。メインイベントが最初に表示されるまで発生しません。そのため、loadイベントハンドラーではなく、フォームのコンストラクターで初期化を行ってください。