これもまた、学校の課題の中で使用するソースですが、
本来とはまた違う数値チェックになります。
そもそも「IsNumeric」や「TryParse」という存在を、
昨日に初めて知ったので、当然使用していませんでした。
個人としては、ずっとこのチェックを使ってきたので、
まぁいいかなぁという感じです。
' *******************************
' TextBox1 の中身の数値チェック
' + 4桁まで頭に0を付ける
' *******************************
Try
' TextBox1の中身
Dim sData As String = Me.TextBox1.Text
' Integerへ変換
Dim iData As Integer = Integer.Parse(sData)
Dim iLength As Integer = iData.ToString.Length
' 4桁制限
If iLength > 4 Then
MsgBox("4文字以内で入力して下さい")
Me.TextBox1.Text = ""
Me.TextBox1.Focus()
Exit Sub
End If
' 不足分"0"作成
sData = ""
For i As Integer = iLength To 3
sData += "0"
Next
' TextBox1へ戻す
Me.TextBox1.Text = sData & iData.ToString
' 数値以外
Catch ex As Exception
MsgBox("数値以外です")
Me.TextBox1.Text = ""
Me.TextBox1.Focus()
End Try
Try内で「Integer.Parse」を行い、
「変換できれば」0詰め処理を行います。
この場合「0002」など、すでに頭に0が付加されているものも数値をして認識し、
全角数字やローマ数字はエラーとなります(Integerへ変換できないため)。
頭に0詰めする理由としては、
データベースを用いてマスタメンテを作成する上で、
0を入力する手間を省くためです。
また、この処理では、
「1,525」などの区切りが行われている場合は、
当然文字として認識するので、使用出来なくなります。
その場合は、カンマの存在をチェックし、あるなら省く必要がありますね。
ホーム > テクニック集 > VB.NET 入力値数値チェック+0詰め
0 件のコメント:
コメントを投稿