2016-11-14 6 views
-2

のイベントc#フォームにform_loadイベントがあります。私は私のform1がバックグラウンドで行くと、form2が前景になるときにいくつかの仕事をしたい。私はそれを探すのに時間を無駄にしていますが、この点については何の助けも見つかりませんでした。フォームがコードまたはユーザによって起動されたときにForm.Activatedイベントフォームを「バックグラウンド状態」にする方法c#

DOC

+1

あなたは「Form1がバックグラウンドに行くとForm2のは、フォアグラウンドに来る」と言うとき、あなたはそのフォーム1が焦点とフォーム2意志を失うことになると言うことを意味しますフォーカスを得る?または、フォーム1が非表示になり、フォーム2が表示されることを意味しますか? – phishfordead

+0

現在のフォアグラウンドウィンドウへのハンドルを格納し、2番目のフォームがイベントをトリガするフォアグラウンドであるときにそれらのラインに沿って何かをポーリングすることができます。 user32のGetForegroundWindow()でフォアグラウンドウィンドウを取得できます。 – Jacobr365

+0

これは、form2が開いたときに発生しますか? – Jim

答えて

1

に発生します。

Form.Deactivateイベント

DOC

フォームがフォーカスを失っていないと、もはや活性型である場合に発生します。タイマーを開始し、停止する

UPDATE :

class Form1: Form{ 
    void Form_Load(object sender, EventArgs arg) 
    { 
     this.Activated += form_Activate; 
     this.Deactivate += form_Deactivate; 
    } 

    void form_Activate(object sender, EventArgs arg){ 
     timer.Start(); 
    } 

    void form_Deactivate(object sender, EventArgs arg){ 
     timer.Stop(); 
    } 
} 
+0

フィッシュフォード。お返事をありがとうございます。私はDOCを見てみましょう。 – Zeebok

+0

問題はありません、私はいくつかの助けになる可能性があります:) – phishfordead

+0

こんにちはphishfordead、残念ながらそれは私のために働いていませんでした。これら2つの関数は、私がform2を開いたときに呼び出されません。実際にform1はform2の後ろにありますが、フォーカスが失われているとも言えますが。 。あなたがその状況を理解することを願っています。 – Zeebok

関連する問題