在文本框字符长度

时间:2017-10-11 09:08:11

标签: vb.net

我坚持这个,如果我在文本框中输入6个数字,我的代码会运行但不包括第6个字符。 这是我的代码:

 Private Sub NumberValidationTextBox(sender As Object, e As TextCompositionEventArgs)
    Console.WriteLine(datumTbox.Text.Length)
    Dim regex As New Regex("[^0-9]+")
    e.Handled = regex.IsMatch(e.Text)
    If Len(datumTbox.Text) = 5 Then
        Dim aa As String = datumTbox.Text
        Dim i As Integer = 2
        While i < aa.Length
            aa = aa.Insert(i, "/")
            i += 3
        End While
        datumTbox.Text = aa
        Dim value As String = aa
        Dim time As DateTime = DateTime.Parse(value)
        Console.WriteLine(aa)
    Else
    End If
End Sub

 <TextBox PreviewTextInput="NumberValidationTextBox" x:Name="datumTbox" HorizontalAlignment="Right" Height="22" Margin="0,10,237,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" IsTabStop="False"/>

对于字符串:171291控制台写入17/12/9,不知何故我的最后一个字符串被排除在字符串之外,即使最后一个字符串激活'如果Len(datumTbox.Text)= 5那么'

1 个答案:

答案 0 :(得分:0)

看起来你正在尝试解析输入到格式为ddMMyy的TextBox中的日期值,方法是迭代dd和MM之后追加“/”的字符串,然后使用DateTime.Parse。这不是正确的方法。

相反,只需使用DateTime.TryParseExact来解析输入,然后从转换后的Date值返回所需的格式。这是我的意思的一个例子:

_productfliters