Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
タブページについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2536#CommentId19944
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るしぇ
 ()
投稿日時
2008/8/12 21:18:00
Private Sub TabPage_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) _
Handles TabPage1.Validating, TabPage2.Validating
''※注 Validating イベントをキャンセルするので下のコードでは対応できない
''▼Formを閉じるときにはイベントが発生しないようにする
'If ActiveControl.CausesValidation = False Then
' Exit Sub
'End If
Dim targetTab As TabPage
targetTab = DirectCast(sender, TabPage)
'▼検証中の TabPage の全てのコントロールに対し、TextBox であれば入力チェック
For Each t As Control In targetTab.Controls
If TypeOf t Is TextBox AndAlso 自作メソッド(t.Text) = False Then
e.Cancel = True
't.Focus()
DirectCast(t, TextBox).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