ウィンドウが現在どのような状態にあるかを確認するためにわざわざテストするのはなぜですか?
に設定し、状態を最小化に設定e.Cancel
するだけです。true
===更新===
新しいWindowsフォームプロジェクトを作成しました(VS2010とVS2012を使用して4.0と3.5の両方のフレームワークをテストしました)。
そこから、通知アイコンをForm1に追加し、ダブルクリックイベント(以下のコード)とアイコンを、持っていたランダムなアイコンファイルに設定しました。また、フォームのフォームクロージングイベント(以下のコード)を設定します。
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_FormClosing( object sender, FormClosingEventArgs e ) {
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
}
private void notifyIcon1_MouseDoubleClick( object sender, MouseEventArgs e ) {
this.WindowState = FormWindowState.Normal;
}
}
それから私はプロジェクトを実行しました。[閉じる]ボタンをクリックすると、フォームが非表示になりました。通知アイコンをダブルクリックすると、元に戻りました。私はWindows7を使用していますが、それは問題ではありません。
さて、Form1を子フォームにすると、奇妙なことが発生することがわかりました。しかし、それがあなたがしていることであるかどうかは完全にはわかりません。