
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も見ています
-
C#のループでtextboxに値を入れる方法
C言語・C++・C#
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
-
4
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
5
ボタンクリックイベント 重複防止について
C言語・C++・C#
-
6
C# 超初心者です。 this.Refresh();という文を使いたいです
C言語・C++・C#
-
7
C# DataTableに最後に追加した行をDataGridView上で選択状態にする方法は?
C言語・C++・C#
-
8
C# DataGridView のヘッダーセル中央揃え
C言語・C++・C#
-
9
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
10
VB2005 DataGridView上でクリックを無効にする方法はありますか?
Visual Basic(VBA)
-
11
DataGridViewでセルクリックイベントを発生させるには
Visual Basic(VBA)
-
12
[C#]ListView一覧表示時の幅設定について
その他(プログラミング・Web制作)
-
13
Loadイベント中にほかのイベントを発生したくない
その他(プログラミング・Web制作)
-
14
【C#】textBoxの指定行のデータを削除
C言語・C++・C#
-
15
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
16
C#の質問です
C言語・C++・C#
-
17
visualstudio C# テキストボックスの数値を取得して計算する方法を教えてください。
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
VB.NETでフォームロード中のエ...
-
ExcelVBAのユーザーフォームの...
-
Hideについて(.NET)
-
ユーザーフォームのラベルに時...
-
ユーザーフォームのテキストボ...
-
Form_Load と Form_Activate の...
-
テキストボックスの番号の取得
-
Access-VBAのPublic変数につい...
-
ACCESSのフォーム、開くんです...
-
ACCESS VBA ウィンドウを閉じる
-
VB2005別フォームでのGIF動画の...
-
クリックイベントなのに、2回ク...
-
VBA(エクセル)のユーザー...
-
エクセルVBAのフォームを最...
-
VBAのテキストフォームの折り返...
-
特定のフォームが開いているか...
-
【VBAユーザーフォームで閉じる...
-
EXCEL VBA データベースの内容...
-
vb.netアプリケーション全ての...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Microsoft Formsの「個人情報や...
-
Form_Load と Form_Activate の...
-
VBAでユーザーフォームを再表示...
-
クリックイベントなのに、2回ク...
-
ユーザーフォーム上に現在日時...
-
テキストボックス入力データの...
-
VBAのテキストフォームの折り返...
-
ACCESSのフォーム、開くんです...
-
Hideについて(.NET)
-
ユーザーフォームのテキストボ...
-
エクセルVBAのフォームを最...
-
モーダルフォームとモードレス...
-
EXCEL VBA ユーザーフォームの...
-
フォームのテキストボックスな...
-
コントロールの存在確認
-
パソコンの画面に合わせてユー...
-
フォームウィンドウを最前面に...
-
Accessで、一つのフォーム画面...
おすすめ情報