0

私はForm1を持っていて、ループを実行するときに別のフォーム(Form2)を開く必要があります。問題は、ループを実行すると、Form2が初めて表示され、Form2が自動的に開いたり閉じたりすることです。

それを精査するために、私はこの単純なコードを書きましたが、それは機能しません:

Form2 reg = new Form2();
while (true) 
{
    reg.ShowDialog();
}

Form2の場合:

private void button1_Click(object sender, EventArgs e)
{
    Application.Exit();
}

助けてくれてありがとう!

4

1 に答える 1

1

button1を使用してForm2を閉じていると思います。これは、Form2を単に閉じるのではなく、アプリケーション全体を閉じるbutton1_clickを実行します。

私はあなたのコードを試しましたが、右上隅のXを使用してForm2を閉じると、閉じてすぐに再度開きます。

これが問題である場合は、次のようにメソッドを変更するだけで解決できます。

private void button1_Click(object sender, EventArgs e)
{
    this.Close();
}

別の解決策は、ボタンのDialogResultプロパティをデフォルトのDialogResult.Noneとは異なるものに設定することです。このように、ボタンがクリックされると、フォームは自動的に閉じられ、プロパティの値がShowDialog()の結果として使用されます。

于 2012-05-24T07:08:07.883 に答える