2016-05-16 9 views
1

私は自分のwinformが最小化されているかどうかを調べようとしています。フォームが最小化されているかどうかを知る方法はありますか?

この目的では、プロパティFormWindowState.Minimizedを使用することはできません。このプロパティは私のために働いていないと言ってみましょう。

フォームが最小化されていることを知るために、フォーカスが外れたり、非アクティブ化されたイベントを使用できますか?私が知る限り、フォームが最小化されたときに発生するイベントはありません。

+3

* *このプロパティは私のために働いていないことだけを言うのをしてみましょう - これは*だけ*(推奨)方法... – Idos

+0

であることから、その理由を記入してください私はまだ 'FormWindowState.Minimized'が私のために働いていない理由を理解していない、私はちょうどこの問題の回避策を見つけることを試みている。他の方法はありますか? –

+3

もっと良いアプローチは、回避策を探すのではなく、 'FormWindowState.Minimized''がなぜ機能しないのかを理解することだと思います。あなたのコードを投稿し、[mcve]を提供してください。 – Idos

答えて

2

私は、これは確かにあなたがその目的のために使用すべき財産である

この目的のためにFormWindowState.Minimizedプロパティを使用することはできません。

フォームが最小化されていることを知るために、フォーカスが外れたり、非アクティブ化されたイベントを使用できますか?私が知る限り、フォームが最小化されたときに発生するイベントはありません。

フォームが最小化されると、SizeChangedイベントが発生します。たとえば、次のことを試してください。

// Inside the form constructor or load event 
this.SizeChanged += Form_SizeChanged; 

private void Form_SizeChanged(object sender, EventArgs e) 
{ 
    if (this.WindowState == FormWindowState.Minimized) 
     MessageBox.Show("I'm minimized."); 
} 
+0

SizeChangedイベントは機能するはずですが、フォームサイズも変更するたびに発生します。 –

+0

確かに。しかし、あなたは他の呼び出しを無視し、WindowState.Minimizedをチェックするだけです。 WindowStateプロパティの変更を追跡することはできますが、フォームが最小化されたときにSizeChangedが1回だけ起動されるため意味がありません。 –

+0

はい、これは機能しました。助けてくれてありがとう。 –

関連する問題