老师说的对,确实不能用掩码,下午自己试出来了 If e.Col.Name = "捆包号" Then
If e.Text.Length > 9 Then
Dim n As Integer = e.Text.Length
Dim m As Integer '变量m用于存储转换结果
Dim i As Integer = (n-9) / 3
Dim Values() As String = e.Text.split("-")
If (n-9) Mod 3 > 0 Then
MessageBox.Show("捆包号编码格式必须为:AA0000000-00-00...","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
e.Cancel = True
ElseIf i <> Values.Length - 1 Then
MessageBox.Show("捆包分号必须用【-】分隔后跟2位数的整数" & vbcrlf & "捆包号编码格式为:AA0000000-00-00...","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
e.Cancel = True
Else
For Index As Integer = 1 To Values.Length - 1
If Integer.TryParse(Values(Index), m) = False Then '如果转换不成功
MessageBox.Show("捆包分号必须为2位数的整数,【" & Values(Index) & "】为非法值" & vbcrlf & "捆包号编码格式为:AA0000000-00-00...","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
e.Cancel = True
Exit For
End If
Next
End If
End If
End If