- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#でボタンクリックをキャンセル
)
C#でボタンクリックをキャンセル
このQ&Aのポイント
- C#でボタンクリックをキャンセルする方法について解説します。
- C#+.Netでテキストボックスとボタンを持つフォームを作成し、ボタンクリック時にテキストボックスの内容をチェックしてフォームを閉じるかメッセージボックスを表示する方法について詳しく解説します。
- C#でフォームを開いたままにする方法やボタンのクリックイベントでフォームを閉じる方法についてまとめました。
- みんなの回答 (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("えらー"); } }
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
回答No.1
FormのClosingイベントで検証して NGだった場合 FormClosingEventArgs型の引数eのCancelをTrueにすれば フォームが閉じられることはありませんよ
質問者
補足
情報ありがとうございます。 その方法で、ESCキーやALT+F4で閉じられた時との区別をつける方法はあるのでしょうか?
補足
お返事遅くなりまして申し訳ありません。 試してみましたところ、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("えらー"); } } これで、条件成立時に終了、非成立時にメッセージボックスを出して継続となりました。 これが一番簡単なようですね。 ありがとうございました。