我坚持这个,如果我在文本框中输入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那么'
答案 0 :(得分:0)
看起来你正在尝试解析输入到格式为ddMMyy的TextBox中的日期值,方法是迭代dd和MM之后追加“/”的字符串,然后使用DateTime.Parse。这不是正确的方法。
相反,只需使用DateTime.TryParseExact来解析输入,然后从转换后的Date值返回所需的格式。这是我的意思的一个例子:
_productfliters