- - PR -
Validatingイベントの発生
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-07 13:12
VB2003で
フォーム上にテキストボックスとボタンが存在します テキストボックスのValidatingイベント発生の条件なのですが、 ボタンのCauseValidation をfalseにした場合は、ボタン押下時にはテキストボックスのValidatingは発生しませんが フォームのCauseValidationをfalseにしても、フォームのコントロールボックスの「×」ボタンを押下したときに発生します。 どうすれば発生しなくなるのですか?知ってる方教えてください。 | ||||||||
|
投稿日時: 2006-03-07 14:12
以下のように ActiveControl プロパティを見ます。
面倒なのでカスタム コントロールで、この条件をクリアした MyValidating イベントを実装すると良いでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-07 14:44
ありがとうございます。
すいません。 正確には、ボタンを押下したときではなく、フォームを閉じようとした時に発生するValidatingイベントをキャンセルしたいのです。 ボタン押下時にのキャンセルは実装できています。 Validatingイベント内で、テキストボックスの内容をチェックしている(内容がおかしい時はメッセージボックスを表示)のですが、画面を閉じようとしている時に、Validatingの入力チェックが走ってしまい。Closingがキャンセルされてしまいます。 | ||||||||
|
投稿日時: 2006-03-07 14:47
Button を押下した時のイベントを書いたつもりはありません... また、先のコードはあくまでも例です。 もし、これが TextBox なのであれば TextBox で実装することになります。 だから、 > 面倒なのでカスタム コントロールで、この条件をクリアした MyValidating イベントを実装すると良いでしょう。 と書きました。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-03-07 21:37
「CausesValidation = false のコントロールなのに Validating イベントが発生するのはバグだ!」と言ったら、「by design (仕様です)」と返されました(--;
Form.Closing で、e.Canceled = false としてください。 →CausesValidation を false にした時の動作について VS2005β ですが、VS.NET2003 でも同じだと思います。 |
1