• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#でボタンクリックをキャンセル )

C#でボタンクリックをキャンセル

このQ&Aのポイント
  • C#でボタンクリックをキャンセルする方法について解説します。
  • C#+.Netでテキストボックスとボタンを持つフォームを作成し、ボタンクリック時にテキストボックスの内容をチェックしてフォームを閉じるかメッセージボックスを表示する方法について詳しく解説します。
  • C#でフォームを開いたままにする方法やボタンのクリックイベントでフォームを閉じる方法についてまとめました。

質問者が選んだベストアンサー

  • ベストアンサー
  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.2

DialogResultを利用するのならば、私ならボタンのDialogResultを設定せずに以下のようにします。 (thisはFormクラス) private void button1_Click(object sender, EventArgs e) { if (条件) { this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); } else { System.Windows.Forms.MessageBox::Show("えらー"); } }

titokani
質問者

補足

お返事遅くなりまして申し訳ありません。 試してみましたところ、this.Close()なしでもthis.DialogResultに値を代入するだけで十分なようです。 private void button1_Click(object sender, EventArgs e) { if (条件) { this.DialogResult = System.Windows.Forms.DialogResult.OK; } else { System.Windows.Forms.MessageBox::Show("えらー"); } } これで、条件成立時に終了、非成立時にメッセージボックスを出して継続となりました。 これが一番簡単なようですね。 ありがとうございました。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

FormのClosingイベントで検証して NGだった場合 FormClosingEventArgs型の引数eのCancelをTrueにすれば フォームが閉じられることはありませんよ

titokani
質問者

補足

情報ありがとうございます。 その方法で、ESCキーやALT+F4で閉じられた時との区別をつける方法はあるのでしょうか?

関連するQ&A