-1

私には2つのフォームがあります。このコードを使用して 2 番目のフォームを示します。

Form2 f = new Form2();
f.ShowDialog();

フォーカスがいつメイン フォームに戻るかを理解する必要があります。イベントを試しActivateましたが、それだけではありません。

4

2 に答える 2

4

ShowDialog() の呼び出しが親フォームをブロックしています。
コードが ShowDialog() を終了すると、現在のフォームが再びアクティブになり、

例えば:

using(Form2 f = new Form2())
{
    // At the moment of the call of ShowDialog, the Net Framework start its work to
    // pass the focus to the first control in the Form2 instance
    if(DialogResult.OK == f.ShowDialog())
    {
        // Form confirmed, do your stuff
    }
}

// At the end of the using block the parent form is again the active form with the focus on
// the button that has started this process (or the last control that had focus)
于 2012-08-12T21:08:06.943 に答える
1

入力するとき

Form2 f = new Form2();
f.ShowDialog();

Form2 インスタンスを手動で閉じるまで待機し、メイン フォームに戻ります。これは、ShowDialog() メソッドを使用した場合に発生します。

ほんの一瞬だけ別のフォームをポップアップしてメインフォームに戻りたい場合は、 formInstance.Show() メソッドを使用する必要があります。Show() メソッドは、2 番目のフォームが閉じられるのを待たず、すぐに実行され、Show() ステートメントの後の次のステートメントに制御を渡します。

ご理解いただけましたでしょうか。

于 2012-08-13T07:03:43.913 に答える