Private Sub LossComboBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles LossComboBox.KeyPress
Me.AutoComplete(Me.LossComboBox, e, True)
End Sub
' AutoComplete
Public Sub AutoComplete(ByRef cb As ComboBox, _
ByVal e As System.Windows.Forms.KeyPressEventArgs, _
Optional ByVal blnLimitToList As Boolean = False)
Dim strFindStr As String
If e.KeyChar = Chr(8) Then 'Backspace
If cb.SelectionStart <= 1 Then
cb.Text = ""
Exit Sub
End If
If cb.SelectionLength = 0 Then
strFindStr = cb.Text.Substring(0, cb.Text.Length - 1)
Else
strFindStr = cb.Text.Substring(0, cb.SelectionStart - 1)
End If
Else
If cb.SelectionLength = 0 Then
strFindStr = cb.Text & e.KeyChar
Else
strFindStr = cb.Text.Substring(0, cb.SelectionStart) & e.KeyChar
End If
End If
Dim intIdx As Integer = -1
' Search the string in the Combo Box List.
intIdx = cb.FindString(strFindStr)
If intIdx <> -1 Then ' String found in the List.
cb.SelectedText = ""
cb.SelectedIndex = intIdx
cb.SelectionStart = strFindStr.Length
cb.SelectionLength = cb.Text.Length
e.Handled = True
Else
If blnLimitToList = True Then
e.Handled = True
Else
e.Handled = False
End If
End If
End Sub
浙公网安备 33010602011771号