19. Apr 2024, 22:03
VB-fun.de - Beitragsübersicht zum VB-/VBA-Forum-Archiv 0414
  E03: ComboBox-Text markieren
 Von schoentalegg
 eMail
 Am 24. Oktober 2008 um 11:45:33
 Frage Hallo Leute

Wieso funktioniert folgender Code nicht?
Private Sub ComboBox1_Enter()
ComboBox1.SelStart = 0
ComboBox1.SelLength = Len(ComboBox1.Text)
DoEvents
End Sub
Ich möchte, dass wenn eine Combobox angeklickt wird, der gesamte Text des Eintrages markiert wird, damit man gleich mit überschreiben beginnen kann. Aktuell muss ich, nachdem ich auf die Combobox geklickt habe, zuerst selber den Text markieren, damit ich ihn überschreiben kann.

Der obengenannte Code wird bei Klick auf die Combobox korrekt durchlaufen, wenn ich bei DoEvents anhalte und im Direktfenster ComboBox1.SelLength oder ComboBox1.SelText abfrage, dann gibt er die erwarteten Werte aus (als wäre der ComboBox-Text komlett markiert. Der Cursor befindet sich jedoch einfach an der Stelle des Combobox-Textes, die ich beim anklicken erwischt habe - markiert ist gar nichts.

NB: ich habe eine Funktion eingebaut, die dann wenn ich ein Wort einzutippe beginne, bei jedem eingetipptem Buchstaben fortlaufend den ersten möglich Eintrag auswählt. Das funktioniert toll, aber das mühsame markieren ist etwas unschön.

Interessant ist, dass beim Laden der Userform der Text der Combox komplett markiert ist. Das ComboBox1_Enter - Ereignis wird da dort durch ...SetFocus in 'UserForm_Initialize' ausgelöst und die oben einkopierte Prozedur durchlaufen. Wenn ich diese ComboBox1_Enter-Prozedur auskommentiere, wird beim Laden der Userform ebenfalls nichts markiert!

Warum funktioniert die Prozedur beim Aufstart - nicht aber beim anklicken der Combobox? Es gibt weder beim Start noch beim anklicken andere Ereignisprozeduren, die durchlaufen werden.
Private Sub UserForm_Initialize()
Dim lRow As Long, i As Long
blnIntern = True 'Verhindert das Ausführen anderer Prozeduren wie .._Change oder .._Click
ComboBox1.Clear
ComboBox2.Clear
lRow = [A65536].End(xlUp).Row
ComboBox1.AddItem "??????"
ComboBox2.AddItem "neuen Artikel hinzufügen"
For i = lngErsteDatenZeile To lRow
ComboBox1.AddItem Cells(i, 1)
ComboBox2.AddItem Cells(i, 2)
Next i
ComboBox1.ListIndex = 0
ComboBox2.ListIndex = 0
ComboBox1.SetFocus
blnIntern = False
End Sub
Herzlichen Dank für Eure Hilfe

schoentalegg
[ VB-/VBA-Forum | Archiv 0414 | Archiv-Übersicht ]
 Antworten
E03: ComboBox-Text markieren - schoentalegg 24. Oktober 2008 um 11:45:33
Re: ComboBox-Text markieren - r.mueller@sz-online.de 26. Oktober 2008 um 06:31:35
Re: ComboBox-Text markieren - schoentalegg 27. Oktober 2008 um 17:49:23

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX | DirectX-Forum | VB.Net | VB.Net-Forum | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum