Vb.net 计算文本框中的字符数

Vb.net 计算文本框中的字符数,vb.net,textbox,character,keypress,Vb.net,Textbox,Character,Keypress,我有一个文本框,如果用户输入超过10个字符,它会显示一个MsgBox。那部分有效:D 问题在于,如果文本框为空且用户键入第一个字符,也会显示该消息。我认为这是因为Null被视为大于10的值?但我不确定 A) 发生了什么事 B) 我怎样才能解决这个问题 Private Sub TextBox3_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox3.KeyPress If TextBox3.Text.Lengt

我有一个
文本框
,如果用户输入超过10个字符,它会显示一个
MsgBox
。那部分有效:D

问题在于,如果
文本框
为空且用户键入第一个字符,也会显示该消息。我认为这是因为
Null
被视为大于10的值?但我不确定

A) 发生了什么事

B) 我怎样才能解决这个问题

Private Sub TextBox3_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox3.KeyPress
    If TextBox3.Text.Length >= 10 Then
        MsgBox("WARNING")
    End If
End Sub

你可以试试这个。通过使用修剪,将忽略空白字符。例如,如果用户只输入了10个[Spacebar]键,则会将其删除

Private Sub TextBox3_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox3.KeyPress
If TextBox3.Text.Trim().Length() >= 10 Then
    MsgBox("WARNING")
End If
End Sub

TextBox3.Text的初始值是多少?不,
null
Nothing
没有长度,因此它也不等于或大于10。但是
TextBox.Text
无论如何都不会返回
null
Nothing
,即使您分配
Nothing
属性也将返回长度为0的
字符串。Empty
。请尝试改用
TextBox3\u TextChanged
。在文本放入框之前会发生
按键
事件。您确定已正确标记文本框吗?除非长度>=10
否则不应显示MsgBox。如果文本框为空且用户键入第一个字符,则消息也会显示,该代码不会导致该问题。您可能有其他代码在某处抛出其他消息框