- - PR -
Validatingのe.Cancelのキャンセル
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-05-19 12:09
すいません初歩的な事かもしれません。
Validatingの中でe.Cancel = trueにした場合に制御できる事は嬉しいのですが 常にクリックさせたいボタンまで効かなくなってしまうのに困ってます。 プロパティで設定するのかClick時にコード記述するのか・・・ どうすればいいのでしょうか? | ||||||||
|
投稿日時: 2005-05-19 12:39
こんにちは、じゃんぬ です。
if (! btnCancel.Focused) { e.Cancel = true; } のようにしましょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-05-19 14:28
じゃんぬさん、ありがとうございます。
private void text1_Validating(・・・){ if(btnCancel.Focused){e.Cancel = false; return;} // 追加 if(text1.Text == "") { MessageBox("値がありません"); e.Cancel = true; return; } } テキストを抜ける時にボタンをクリックした場合、フォーカス移動してから Validatingが走るんですね。勉強になりました。 この場合だともうe.Cancel = falseも要らないかなと思いました。 でもtext1_Validatedの使い方が見えてこなくなってきました。 Validatedでtext1の値が入ってる仮定で処理をしてたのですが上の追加をすると 値がなくても走ってしまいますからね。 なのでValidatingの最後に処理の記述を移動させました。 ValidatingでチェックしてValidatedで実行とは行かないみたいですね・・・^^; | ||||||||
|
投稿日時: 2005-05-19 14:38
こんにちは、じゃんぬ です。
こういう使い方さえしなければ、普通に使えますよん。
Leave で値の編集を行って、Validating でメッセージを出すとか、 Validating で値の編集は行うけど、ある条件下で動く自作 Validate イベントでチェックするとか... 後者の場合は、カスタム コントロールになりますけども。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-05-19 14:55
>こういう使い方さえしなければ、普通に使えますよん。
本当その通りですよね。 こればっかりは使って行って慣れるしかないなと思いました。 余談ですがサイト見させて頂きました。 若い方ですね! いろいろな言語も触れられてるのですごいの一言です。 歳は関係ない世界だと思ってますので(^^;)また見かけたら アドバイスよろしくお願いしますm(__)m [ メッセージ編集済み 編集者: KUMA 編集日時 2005-05-19 14:55 ] [ メッセージ編集済み 編集者: KUMA 編集日時 2005-05-19 14:56 ] | ||||||||
|
投稿日時: 2005-05-20 20:03
ヾ(^_^;つっこみ btnCancel.CausesValidation = false;←フォームデザイナのプロパティで設定しましょう。
思いこみは厳禁。マウスクリックと、[TAB]キーとで発生する順番が違います。MSDNできちんと確認しましょう。 参考スレッド # 嗚呼!フィードバックに誤記発見orz _________________ |
1