我创建了一个自动完成文本框,其模式为SuggestAndAppend。我想检测文本框中的文本是否是由用户新输入的,还是只是从源集合中添加?
当文本框松散焦点时可以检查,但是还有另一种方法可以立即检测到焦点仍在文本框中吗?
任何想法?
答案 0 :(得分:0)
目前,我可以编写代码来实现任务。现在,此代码可以检测新键入的文本是否不是集合中任何项目的一部分。但是如果用户键入了一个可以被视为集合中条目一部分的新文本呢?即如果该集合包含如下条目:BBC,CNN,FOX New,用户只想键入CN(卡通网络)..在这种情况下" CN"将成为CNN的一部分,然后代码不会将其检测为新条目。
Private Sub TextBox1_TextChanged_1(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Dim isNew As Boolean = True
For i As Integer = 0 To TextBox1.AutoCompleteCustomSource.Count - 1
If UCase(Trim(TextBox1.AutoCompleteCustomSource(i))) Like UCase(Trim(TextBox1.Text)) & "*" Then
isNew = False
Exit For
End If
Next
If isNew = True Then
MsgBox("Custome")
Else
End If
End Sub
如果文本框中的文本对于集合是新的或者没有,则下面的代码可以小鸡,暂时它会在Leave Event中捕获它。应该改进以捕捉[Enter]键
Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles TextBox1.Leave
Dim isNew As Boolean = True
For i As Integer = 0 To TextBox1.AutoCompleteCustomSource.Count - 1
If TextBox1.AutoCompleteCustomSource.Contains(UCase(Trim(TextBox1.Text))) Then
isNew = False
End If
Next
If isNew = True Then
MsgBox("Custome")
Else
End If
End Sub