Kunne du ikke beskrive hvad du vil opnå? Der må være andre måder. Højrepil kan i hvert fald kun udføres hvis der er et tegn at gå til højre til. Prøv at indsætte space først.
Jeg har et ComboBox felt med _KeyUp event, som slår op i listen(forslår resten) Feks. er der flere forskellige Citroen biler i listen. Så når jeg har tastet ci Står citroen med troen highlighted. Så når jeg taster End Vil jeg at kursøren står ved citroen AX (AX Highlighted.) Det opnås normalt med klik på pil til hojre og et enkelt spacebar..
Jeg kender ikke kontrollen \'combobox felt\', så umiddelbart kan jeg ikke hjælpe. Jeg bruger VB5 Enterprise. Men forklaringen får vel flere på banen. Highlight af en del af en linie er også for min version ukendt i lister.
Functionen HighLight ser sådan ud.. Ville det ikke være en idee at skifte VB5 ud..
Select Case TypeName(Ctrl) Case \"ComboBox\", \"ComboBoxEx\" With Cmb Str = UCase(.Text) Lenght = Len(Str) For i = 0 To .ListCount - 1 If (UCase(Left(.List(i), Lenght))) = Str Then If (.List(i) <> .Text) Then .Text = .List(i) End If If (Lenght = Len(.List(i))) Then SearchControl = True Lenght = 0 End If .SelStart = Lenght .SelLength = Len(.List(i)) - Lenght i = .ListCount + 1 End If Next i End With End Select End Function
Private Sub boxen_KeyUp(KeyCode As Integer, Shift As Integer) SearchControl cmb_biler, KeyCode End Sub
Public Function SearchControl(Ctrl As Object, KeyCode As Integer) As Boolean Dim i As Integer Dim Lenght As Integer, Str As String Dim Cmb As Object Set Cmb = Ctrl SearchControl = False
Select Case KeyCode Case vbKeyDown, vbKeyUp, vbKeyLeft, vbKeyRight, vbKeyBack, vbKeyDelete, _ vbKeyControl, vbKeyShift, vbKeyHome, vbKeyReturn Exit Function Case vbKeyEnd \' ******* Det er her det sker ************ cmb_fabrikat.SelStart = Len(cmb_fabrikat.Text) cmb_fabrikat.SelLength = 1 SendKeys \" \" Exit Function \' ******* Det er her det sker ************ End Select
Select Case TypeName(Ctrl) Case \"ComboBox\", \"ComboBoxEx\" With Cmb Str = UCase(.Text) Lenght = Len(Str) For i = 0 To .ListCount - 1 If (UCase(Left(.List(i), Lenght))) = Str Then If (.List(i) <> .Text) Then .Text = .List(i) End If If (Lenght = Len(.List(i))) Then SearchControl = True Lenght = 0 End If .SelStart = Lenght .SelLength = Len(.List(i)) - Lenght i = .ListCount + 1 End If Next i End With End Select End Function
ok... godt nok et stykke tid siden men... er det muligt at sende f.eks retry ind i et program hvis programmet kommer med en bestemt meddelse??
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.