C#でボタンクリックをキャンセル
こんにちは。
C#+.Netです。
・テキストボックスとボタンを持つフォーム
・ボタンが押された時にテキストボックスの内容をチェックする。
・OKであれば、そのままフォームを閉じる。
・NGであればメッセージボックスを表示して、フォームは開いたまま。
というフォームを作成したいのです。
フォームはShowDialogで表示させます。
ボタンのDialogResultには、DialogResult.OKを設定してあります。
ボタンのClickイベントを使って、メッセージボックスを出すことはできたのですが、フォームを開いたままにすることができません。
あるいは、ボタンのDialogResultはNoneのままにして、イベントハンドラ内から、フォームを閉じる方法がないかと思ったのですが、それもわかりません。
どのようにすればよいのでしょうか?よろしくお願いします。
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("えらー");
}
}
この回答への補足
お返事遅くなりまして申し訳ありません。
試してみましたところ、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("えらー");
}
}
これで、条件成立時に終了、非成立時にメッセージボックスを出して継続となりました。
これが一番簡単なようですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
GridViewでハイライトを使用しない方法
Visual Basic(VBA)
-
-
4
VB2005 DataGridView上でクリックを無効にする方法はありますか?
Visual Basic(VBA)
-
5
C#についてText Boxの枠
その他(ソフトウェア)
-
6
PreviewKeyDownイベントが2回発生する
Visual Basic(VBA)
-
7
【C#】DataGridViewの最大列数について
システム
-
8
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
9
【C#】textBoxの指定行のデータを削除
C言語・C++・C#
-
10
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
11
データベースのデータをTextBoxに入力された値で検索しDataGridViewに表示する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAのフォームを最...
-
ユーザーフォームを表示中にシ...
-
ユーザーフォームのテキストボ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
Excel VBAでユーザーフォームだ...
-
アクセス2013 フォームが...
-
Excel VBAで別のブックからユ...
-
コントロールの存在確認
-
テキストボックスやラベルのクリア
-
モーダルフォームとモードレス...
-
VBA(エクセル)のユーザー...
-
VBAでユーザーフォームを再表示...
-
Microsoft Formsの「個人情報や...
-
テキストボックスの番号の取得
-
Form_Load と Form_Activate の...
-
C#でボタンクリックをキャンセル
-
Access VBA コントロールの参照...
-
'ユーザーフォーム右上隅の[×...
-
VBA ユーザーフォームを速く開...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
エクセルVBAのフォームを最...
-
クリックイベントなのに、2回ク...
-
VBAでユーザーフォームを再表示...
-
ユーザーフォームのテキストボ...
-
コントロールの存在確認
-
モーダルフォームとモードレス...
-
Form_Load と Form_Activate の...
-
Hideについて(.NET)
-
Microsoft Formsの「個人情報や...
-
VBA(エクセル)のユーザー...
-
MSGBOXのフォント大きさ変更
-
ACCESSのフォーム、開くんです...
-
Access VBA コントロールの参照...
-
Excelにて、ユーザーフォームで...
-
フォームウィンドウを最前面に...
-
ユーザーフォーム上に現在日時...
-
エクセルのVBAでユーザーフォー...
-
'ユーザーフォーム右上隅の[×...
おすすめ情報