QA@IT

this.close() でフォームを閉じたのに何度もopenしてしまいます。

4462 PV

C#で画面上の項目を選択すると、その項目の詳細が別フォームで表示されると言う単純な処理なのですが、フォームをclose()で閉じた後に同じフォームが再度立ち上がってしまいます。
アバウトですがコードはこんな感じです。
private void button1_Click(Object sender, EventArgs e)
{
 Form frm = new Form();
 // 製品情報を受け渡している。
 frm.code = code;
 frm.code2 = code;
 etc.....
 //
 frm.ShowDialog(this);
}

画面から必要なデータを別フォームに受け渡しているだけです。受け側もbuttonクリックでthis.close();しているだけです。
ブレークポイントを打って確認すると、しっかりprivateから抜けているのになぜかまたForm frm...の箇所にまで戻ってきます。 数回立ち上がる時もあれば、何十回と上がるときもあります。
for文などの繰り返し処理もしていないので、原因が何なのか特定ができません。
ヒント程度でもいいので何か解る方がいましたら教えてほしいです。

  • 呼び出し履歴の確認はしましたか? -

回答

button1のクリックイベントを割り当てている処理は

どうなっていますか?

複数回おこなっているのではないでしょうか?

編集 履歴 (0)

フォーム自体や他のコントロールのイベント処理は確認しましたか?
フォーカス獲得/喪失イベント内でフォーカス移動行っていないか等、イベントが再帰的なループになっていないか確認してみてください。
面倒かもしれませんが単純なフォーム二つで検証を行い、そこに実際のコントロール,イベントロジック等を組み込んでいき問題を把握する手もあります。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。