如何过滤我的组合框

时间:2013-08-02 16:07:05

标签: vb.net visual-studio-2010 visual-studio vb.net-2010

我已设法过滤我的组合框,因此它会过滤并显示正确的记录,即当输入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

1 个答案:

答案 0 :(得分:1)

使用您的代码实现您想要的功能非常简单,只需将If Index = -1 Then Return转换为:

即可
 If Index = -1 Then
     MessageBox.Show("Not Found.")
     Return
 End If

在任何情况下,请注意ComboBox中的内置功能执行您的代码现在执行的相同操作:AutoCompleteModeNone和{{1}不同设置为AutoCompleteSource。从逻辑上讲,您可以改进代码以执行更复杂的操作(我猜是这种情况),但我倾向于突出显示此问题以防万一。