VBA Forms List-Control mit MultiSelect und MatchEntryComplete

01/11/2010 - 11:05 von Stefan Kunze | Report spam
Hallo NG,

ich habe in einer UserForm ein MSForms-List-Control, das ich mit eigenen
Daten befülle.
Mein Problem ist aber, dass die Kombination der Eigenschaften

"MultiSelect" = fmMultiSelectExtended und
"MatchEntry" = fmMatchEntryComplete

nicht so funktioniert, wie sie sollte.
Das List-Control reagiert auf Tasten immer so, als wàre
"MatchEntry"=fmMatchEntryFirstLetter eingestellt.

Stelle ich "MultiSelect" = fmMultiSelectSingle ein, funktioniert wieder
die MatchEntry-Eigenschaft wie erwartet.
Wie kann ich diesen Effekt umgehen?

Vielen Dank für Eure Hilfe.
Stefan
 

Lesen sie die antworten

#1 Andreas Killer
01/11/2010 - 13:04 | Warnen spam
On 1 Nov., 11:05, "Stefan Kunze" wrote:

Stelle ich "MultiSelect" = fmMultiSelectSingle ein, funktioniert wieder
die MatchEntry-Eigenschaft wie erwartet.
Wie kann ich diesen Effekt umgehen?


Tja, gute Frage, wahrscheinlich nur wenn Du
.MatchEntry = fmMatchEntryNone
setzt und Dir selber was schreibst, so in dieser Art.

Andreas.

Option Explicit

Dim lbSearch As String

Private Sub ListBox1_Enter()
lbSearch = ""
End Sub

Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim I As Long
With ListBox1
'Suchstring erweitern
lbSearch = lbSearch & Chr(KeyAscii)
'Suche von hier bis zum Ende
For I = .ListIndex To .ListCount - 1
If InStr(1, .List(I), lbSearch, vbTextCompare) = 1 Then
.ListIndex = I
Exit Sub
End If
Next
'Suche vom Anfang bis hier
For I = 0 To .ListIndex - 1
If InStr(1, .List(I), lbSearch, vbTextCompare) = 1 Then
.ListIndex = I
Exit Sub
End If
Next
'Nicht gefunden
lbSearch = ""
End With
End Sub

Ähnliche fragen