2011-06-19 30 views
2

すべてのデフォルト設定のC#windowsフォームアプリケーションがあります。私はVS 2008、OS - Windows VIstaを使用しています。フォームのフォーカスが失われました - 基本質問

私のフォームがフォーカスを失ったとき(ユーザーがフォームの後ろの何かをクリックしたときなど)、フォーカスを失ったフォームと同じフォームが必要です。

私はこのイベントを使ってこれを処理しました。ここで

private void Form1_Deactivate_1(object sender, EventArgs e) 
{ 

    Console.WriteLine("DEACTIVATE EVENT _______+++++++++_________"); 
    Form1 f = new Form1(); 
    f.show(); 
} 

、何を見ますと、そのフォームがフォーカスを失ったときに、Console.WriteLineをコマンドが実行され、新しいフォームが画面に表示されますです。これいらない。フォーカスを失った正確なフォームがフォーカスを取り戻して画面に表示されるようにしたい。どのように私はこれを行うのですか?

+0

この作業を行うことはできません.Windowsはこれを実装しません。タスクバーの点滅ボタンが表示されます。 –

答えて

5

Form.Activate方法フォームを活性化し、それが焦点与える:

form.Activate(); 

Form.TopMostプロパティフォームが最上位フォームとして表示されるべきかどうかを示します。
最上位のフォームは、アクティブフォームまたはフォアグラウンドフォームでなくても、他のすべての(最上位ではない)フォームと重複するフォームです。一番上のフォームは、デスクトップ上のウィンドウのzオーダーの最も高いポイントに常に表示されます。

form.TopMost = true; 
+0

**別のアプリケーションで** **ダブルクリックするか**コントロールバーのタブで**ダブルクリック**をするとフォーカスが失われ、もう一度取り返すことはできません – illep

+0

@illep: 'Form.TopMost'を編集された答えに.. –

関連する問題