this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
//this.visible = false (Hotkeys stop working forever but the grey rest of the form would disappear from above taskbar)
ReRegisterHotkeys();
上記のコードを使用して、アプリケーションをトレイ アイコンで最小化します。現在、フォームの最小化された残りの部分は、スタート ボタンがあるタスクバーの少し上の左右隅にまだハングしています。表示されるのは、フォームを閉じるための小さな「x」が付いた灰色のタイトルバーと、タイトル バーの上にあるキャプション テキストだけです。これは非常に奇妙です。フォームを「最小化」に設定し、タスクバーに表示しないように設定しましたが、それでも表示されます。フォームにホットキーを登録したので、「非表示」に設定しないと、後でホットキーを再登録してもホットキーが機能しなくなります。この最小化されたフォームのキャプションを「非表示」に設定するか、タイトルバーを削除する以外に、この最小化されたフォームのキャプションを削除する方法はまだありません。このプログラムには、タイトルバー、タイトルバー アイコン、およびタイトルバー コントロール領域が必要です。
フォームをツールウィンドウに設定せずに、完全に非表示に設定せずに、タスクバーの上のフォームのこの灰色の残りを非表示にするにはどうすればよいですか。ホットキーはその後も機能する必要があり、フォームを通常に戻したときに、フォームのタイトルバー、アイコン、およびコントロール領域を維持する必要があります。
この例からホットキー コードを取得しました。唯一の違いは、ホットキーを登録する手順を "ReRegisterHotkeys()" という名前のサブ関数にまとめたことです。
重要: フォームが最小化されたときにタイトルバーが表示される問題は、登録されたホットキーとは関係ありません。これは一般的な「C# の問題」です。フォームを最小化し、タスクバーで非表示に設定すると、タスクバーに「x」が付いたタイトルバーが表示されます。これは、フォームを非表示にしたり、ウィンドウ スタイルを削除したりせずに削除したいと考えています。ホットキーがなくなったため、「this.show」または「this.hide」は「this.visible=true/false」と同じ致命的な動作をします。デフォルトで示されているようにフォームを作成しますが、まだ非表示にしたくありません。
これはそこにないものです-傷つけずに削除する方法: