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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【C#】 あるイベントから別イベントを呼び出す。
その他(プログラミング・Web制作)
-
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
VB2005 DataGridView上でクリックを無効にする方法はありますか?
Visual Basic(VBA)
-
-
4
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
5
ボタンクリックイベント 重複防止について
C言語・C++・C#
-
6
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
7
C# visibleプロパティをfalseに設定したテキストボックス
C言語・C++・C#
-
8
C# 超初心者です。 this.Refresh();という文を使いたいです
C言語・C++・C#
-
9
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
10
DataGridViewのセル編集完了後に値を設定するには
Visual Basic(VBA)
-
11
NumericUpDownコントロールでの表示書式
Visual Basic(VBA)
-
12
デザイン時のVisible=Falseは実行時に変更できない?
Visual Basic(VBA)
-
13
DataGrdViewに関連付けたデータの更新
C言語・C++・C#
-
14
C#でButtonのフォーカス枠を消したいのですが
C言語・C++・C#
-
15
DateTimePickerでに年月までしか選択できないようにしたいです。
Visual Basic(VBA)
-
16
【C#】textBoxの指定行のデータを削除
C言語・C++・C#
-
17
C# DataTableの行をソートしてDataGridViewに反映させたい
C言語・C++・C#
-
18
visual studio2019でデバッグができません
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでユーザーフォームを再表示...
-
ユーザーフォームのテキストボ...
-
ユーザーフォーム上に現在日時...
-
モーダルフォームとモードレス...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォームのコピー?
-
MSGBOXのフォント大きさ変更
-
ExcelVBAのユーザーフォームの...
-
VBA(エクセル)のユーザー...
-
Excel VBAで別のブックからユ...
-
エクセルのフォームをマクロで...
-
Microsoft Forms とか、それに...
-
エクセルVBAのフォームを最...
-
ユーザーフォームを表示中にシ...
-
VBAのテキストフォームの折り返...
-
なぜエラーになるのでしょう?...
-
子フォームでDB更新後、親フォ...
-
フォームの位置を取得したい
-
Form_Load と Form_Activate の...
-
エクセルのVBAでユーザーフォー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォームのテキストボ...
-
【VBAユーザーフォームで閉じる...
-
モーダルフォームとモードレス...
-
VBAでユーザーフォームを再表示...
-
エクセルVBAのフォームを最...
-
MSGBOXのフォント大きさ変更
-
Form_Load と Form_Activate の...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
Hideについて(.NET)
-
フォームウィンドウを最前面に...
-
コントロールの存在確認
-
VBA(エクセル)のユーザー...
-
'ユーザーフォーム右上隅の[×...
-
エクセルVBA フォーム上でOnkey...
-
ブックをCloseまたはQuitで閉じ...
おすすめ情報