|
魔界の仮面弁士さんが回答を書いていますが、
より単純なコードを書いておきます。
private void checkBox1_CheckedChanged(object sender, EventArgs e)
というイベントは、checkBox1のチェックがついたり、はずされたりすると動きます。
モーダルフォームがキャンセルされたとき、checkBox1のチェックは変わりますから、
またそのイベントが起きる、無限ループというわけです。
なので、チェックがはずされたときには何もしないようにします。
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
//チェックがついた
if (checkBox1.Checked)
{
Form2 f2 = new Form2();
if (f2.ShowDialog(this) != DialogResult.OK)
{
checkBox1.Checked = false;
}
}
//チェックが外されたので何もしない
else return;
}
|