Auto Filling ComboBox when user types

Here is a snippit


Protected Overridable Sub OnComboKeyUp(ByVal sender As Object, ByVal e As KeyEventArgs) 
            Dim s As String, fs As String, s2 As String 
            Dim index As Integer, k As Integer 
            Dim objValue As Object 
            Dim displayM As String 
            Dim check() As Keys = {Keys.CapsLock, Keys.Control, _ 
                                   Keys.ControlKey, Keys.Down, _ 
                                   Keys.End, Keys.Enter, Keys.Escape, Keys.End, _ 
                                   Keys.Home, Keys.Insert, Keys.Left, Keys.PageDown, _ 
                                   Keys.PageUp, Keys.Right, Keys.Shift, Keys.ShiftKey, _ 
                                   Keys.Tab, Keys.Up, Keys.Alt} 

            If Array.IndexOf(check, e.KeyCode) <> -1 Then 
                Return 
            End If 


           s = Me.ColumnComboBox.Text 

            If s <> "" Then 
                index = Me.ColumnComboBox.FindString(s) 
                If index = -1 Then 
                    If ColumnProp.BlockNil Then 
                        Beep() 
                        For k = s.Length To 1 Step -1 
                            s2 = s.Substring(0, k) 
                            index = Me.ColumnComboBox.FindString(s2) 
                            If index <> -1 Then 
                                Exit For 
                            End If 
                        Next 
                        s = s2 
                    End If 
                End If 
                If index <> -1 Then 
                    Try 
                        Me.ColumnComboBox.SelectedIndex = index 
                        Dim o As Object 
                        Dim drv As DataRowView 
                        o = Me.ColumnComboBox.SelectedItem 
                        If o.GetType Is GetType(DataRowView) Then 
                            drv = CType(o, DataRowView) 
                            displayM = Me.ColumnComboBox.DisplayMember.ToString 
                            objValue = drv.Item(displayM) 
                            fs = CStr(objValue) 
                        Else 
                            fs = CStr(Me.ColumnComboBox.SelectedItem) 
                        End If 

                        Me.ColumnComboBox.SelectionStart = s.Length 
                        Me.ColumnComboBox.SelectionLength = (fs.Length - s.Length) 
                    Catch 
                    End Try 
                Else 
                End If 
            Else 
                Me.ColumnComboBox.SelectedIndex = 0 
                Me.ColumnComboBox.SelectionStart = 0 
                Me.ColumnComboBox.SelectionLength = Me.ColumnComboBox.Text.Length 
                Beep() 
            End If 

        End Sub