验证时间

时间:2014-04-02 01:35:23

标签: vb.net winforms validation

我正在尝试验证有效时间是否已提交给接受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

2 个答案:

答案 0 :(得分:1)

尝试MaskedTextBox.MaskFull

  

获取一个值,该值指示是否已将所有必需输入和可选输入输入到输入掩码中。

答案 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