Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
タブページについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2536#CommentId19942
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
鍵
 ()
投稿日時
2008/8/12 18:54:00
Private Sub TabPage1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TabPage1.Validating
'▼Formを閉じるときにはイベントが発生しないようにする
If ActiveControl.CausesValidation = False Then
Exit Sub
End If
'▼TabPage1の全てのコントロールに対し、入力チェック
For Each t As TextBox In TabPage1.Controls
If 自作メソッド(t.Text) = False Then
t.Focus()
t.SelectAll()
Exit Sub
End If
Next
End Sub
'■自作メソッド
''' <summary>指定した値が正しいかチェックする</summary>
''' <param name="Expression">チェックしたい文字列型の値</param>
''' <returns>正しければTrueを返し、エラーならメッセージを表示してFalseを返す</returns>
Private Function 自作メソッド(ByVal Expression As String) As Boolean
Dim reg As New System.Text.RegularExpressions.Regex("^\d{1,3}$")
If Not reg.IsMatch(Expression) Then
MsgBox("error", vbCritical, "入力エラー")
TabControl1.SelectedIndex = 0
Return False
End If
If CInt(Expression) > 300 Then
MsgBox("300over", vbCritical, "入力エラー")
TabControl1.SelectedIndex = 0
Return False
End If
Return True
End Function
入力チェックならエラーのときはテキストを初期化する
より、全て選択したほうが親切かと思い、SelectAllを
使用しています。
また、このコードだとFocusのところでValidatingイベントが
発生してしまい、メッセージが2回表示されてしまいます。
他に方法はないものでしょうか・・・・・
他の方のフォローに期待します^^;