質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

5268閲覧

VS2010でのValidatingの挙動

gorota

総合スコア25

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2015/05/06 08:04

編集2015/05/06 08:43

VisualBasic2010 professionalにおいて
画面コントロールのValidation イベント内で入力チェックをしていますが
メッセージボックスを表示して、イベントをキャンセルしても、
再度、Validation イベントが発生して、メッセージが2度表示されます。

検証していくと、メッセージボックスを表示、確認の際に、
フォーカスが遷移しているようで、
再度 Validatiing 発生にいたっております。
このような現象をご存知の方、
対処方法をよろしければご教授下さい
(記入例)
Private Sub CTL(....) Handles CTL.Validating
if CTL = エラー then
MessageBox.Show("エラー")
e.Cancel = True
Return
End IF
.....
End sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2015/05/06 09:35

こんにちは。 VS2010が手元になかったのでVS2013で試しましたが発生しませんでした。 VB.NETでテキストボックスを配置し、そのValidatingイベントに上記処理( CTL = エラー は、TextBox1.Text = "A"で代替)を投入してみましたが、他に必要な設定があれば教えてください。 上記のみで発生するのであれば、 VisualStudioの差とは考えにくいのでOS、ターゲットフレームワークのバージョン、実行環境の.NET Frameworkのバージョンなどを明記して頂けると。
gorota

2015/05/06 10:30

テスト実行有難うございます。 質問では単純に記載しましたが、実際には、 カストマイス゛したコントロールで、 他にも、派生するイベント発生が、多々あるので、 今少し自分で考えてみます。
guest

回答1

0

自己解決

自分でもう少し考えてみます

その後、原因が判明いたしました
カストマイス゛したコントロール内で
OnKeyDownをOverrides補足して、
Enterキーでは、FindForm.SelectNextControlを記入していました
そこで、Validating→エラー処理(メッセージ)→e.Cancel=True にて
フォーカス移動が元の戻るのですが、
OnKeyDown内の最後にMyBase.OnKeyDown(e)している為に
再度、Enterキーを打鍵したようなイベントになり、
再び、フォーム側でValidating→エラー処理となり、
2度メッセージ表示となった訳です
対応:
OnKeyDown内で、Enterキー処理後には
e.Handled = Trueとして、
MyBase.OnKeyDown(e)は実行しないとしました

投稿2015/05/06 10:31

編集2015/05/06 23:13
gorota

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問