掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Validatingイベントが原因でForm閉じれない? (ID:144730)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。 フォームにTextBoxを貼り付け[X]閉じるボタンでフォームを終了する プログラムをVB2005で作成しています。 TextBoxは数字のみの入力を許可し、以外の文字が入っていたらメッセージ を出すようにしています、[X]閉じるボタンをクリックした時は、TextBox の入力内容に関係なくフォームを終了したいのですが、方法がわかりま せん... いろいろ調べたのですが、[X]閉じるボタンは、Validating イベントの タイミングで、ActiveControlが自分自身かどうかを判断しスルーすれば できるということにたどり着き、以下のプログラムで解決出来ました。 Public Class Form1 Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating If IsNumeric(TextBox1.Text) = False And Me.ActiveControl IsNot TextBox1 Then e.Cancel = True MsgBox("数字以外の文字は入力できません。", MsgBoxStyle.Information, "") End If End Sub End Class 今後は以下の様に、TextBoxを継承したカスタムコンポーネントを作成し、 フォームに貼り付け、使い回し出来ればと思います。 Public Class TextBoxNumericCheck Protected Overrides Sub OnValidating(ByVal e As System.ComponentModel.CancelEventArgs) MyBase.OnValidating(e) If IsNumeric(Me.Text) = False And Me.ActiveControl IsNot TextBox1 Then e.Cancel = True MsgBox("数字以外の文字は入力できません。", MsgBoxStyle.Information, "") Return End If End Sub End Class 上記のMe.ActiveControl IsNot TextBoxの所がエラーになってしまいます、 カスタムコンポーネントでは書き方が全然違うのでしょうか? TextBox1.Textの箇所はMe.Textに変更したらうまくいったのですが。 初歩的な質問ですいません、ご教授おねがいします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.