我正在尝试验证有效时间是否已提交给接受24小时时间格式的maskedtextbox。
问题不在于输入的数字,而是输入的时间不完整(13:__ etc)
If IsDate(MaskedTextBox1.Text) Then
MsgBox("Is a time")
Else
MsgBox("not a time")
End If
似乎是正确的选择,直到我尝试另一个试图输入1 _: 1被接受为"是时间" - 所以是1 :1_ - 将是什么一种更好的验证方法我的最短时间为00:00,最长时间为23:59,没有空格。
结论:
If IsDate(MaskedTextBox1.Text) And MaskedTextBox1.MaskFull Then
MsgBox("Is a time")
Else
MsgBox("not a time")
End If
答案 0 :(得分:1)
获取一个值,该值指示是否已将所有必需输入和可选输入输入到输入掩码中。
答案 1 :(得分:0)
非常繁琐,但您可以使用TimeSpan.TryParseExact
Imports System.Globalization
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Parse hour:minute value with "g" specifier current culture.'
Dim interval As TimeSpan
Dim format As String
Dim culture As CultureInfo
format = "g"
culture = CultureInfo.CurrentCulture
If TimeSpan.TryParseExact(TextBox1.Text, format, culture, interval) Then
MsgBox(String.Format("'{0}' --> {1}", TextBox1.Text, interval))
Else
MsgBox(String.Format("Unable to parse {0}", TextBox1.Text))
End If
End Sub
End Class