我已设法过滤我的组合框,因此它会过滤并显示正确的记录,即当输入A时所有A记录显示,B键入所有B记录显示等等。但是,当组合框中没有找到记录时,是否可以显示一个消息框?
我到目前为止的编码是: -
Private Sub cmblogged_KeyPress(sender As Object, e As KeyPressEventArgs) Handles cmblogged.KeyPress
If Char.IsControl(e.KeyChar) Then Return
With Me.cmblogged
Dim ToFind As String = .Text.Substring(0, .SelectionStart) & e.KeyChar
Dim Index As Integer = .FindStringExact(ToFind)
If Index = -1 Then Index = .FindString(ToFind)
If Index = -1 Then Return
.SelectedIndex = Index
.SelectionStart = ToFind.Length
.SelectionLength = .Text.Length - .SelectionStart
e.Handled = True
End With
End Sub
答案 0 :(得分:1)
使用您的代码实现您想要的功能非常简单,只需将If Index = -1 Then Return
转换为:
If Index = -1 Then
MessageBox.Show("Not Found.")
Return
End If
在任何情况下,请注意ComboBox
中的内置功能执行您的代码现在执行的相同操作:AutoCompleteMode
与None
和{{1}不同设置为AutoCompleteSource
。从逻辑上讲,您可以改进代码以执行更复杂的操作(我猜是这种情况),但我倾向于突出显示此问题以防万一。