Jeder, der den Microsoft Internet Explorer nutzt, kennt die ComboBox aus der Adresszeile. Beim Eingeben neuer URLs in das Combo-Eingabefeld wird versucht die Eingabe autom. zu vervollständigen. Neue URLs werden automatisch in der Combo-Liste gespeichert, so dass diese jederzeit wieder aus der Liste ausgewählt werden können. Und nicht mehr benötigte Einträge lassen sich manuell per Entf-Taste aus der aufgeklappten Liste löschen. Alle diese Funktionen lassen sich mit relativ wenig Aufwand auf eine normale Windows Standard-ComboBox übertragen. Und hier erfahren Sie, wie's geht. Der Reihe nach... autom. Eintragen neuer Eingaben in die ComboBox-Liste ' Bei ENTER - aktuelle Eingabe in die ' ComboBox-Liste aufnehmen Private Sub Combo1_KeyPress(KeyAscii As Integer) ' in ComboListe aufnehmen Dim I As Integer Dim bExists As Boolean With Combo1 If KeyAscii = 13 And .Text <> "" Then ' Prüfen ob bereits vorhanden bExists = False For I = 0 To .ListCount - 1 If .List(I) = .Text Then bExists = True: Exit For End If Next I If Not bExists Then .AddItem .Text .SelStart = 0 .SelLength = 999 End If End With End Sub Autovervollständigen ' Autovervollständigung... Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer) Static sTextOld As String Dim I As Integer Dim sPos As Integer With Combo1 ' nur wenn sich die Eingabe geändert hat If sTextOld <> .Text Then For I = 0 To .ListCount - 1 If .List(I) Like .Text + "*" Then sPos = .SelStart sTextOld = .Text .Text = .List(I) .SelStart = sPos .SelLength = Len(.Text) - sPos + 1 Exit For End If Next I End If End With End Sub Einträge aus der aufgeklappten ComboBox-Liste löschen Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) ' Per "ENTF"-Taste aktuellen Eintrag ' aus der Liste löschen If KeyCode = vbKeyDelete And Combo1.ListIndex >= 0 Then ' ENTF-Taste? ' Ist die ComboBox aufgeklappt? If CBool(SendMessage(Combo1.hwnd, CB_GETDROPPEDSTATE, _ 0, 0)) Then ' aktuellen Eintrag löschen Combo1.RemoveItem Combo1.ListIndex ' Fenster neuzeichnen Me.Refresh End If End If End Sub Was fehlt jetzt noch? Genau! Das Speichern und Laden des ComboBox-Listinhaltes. Speichern der ComboBox-Liste Public Sub Combo_Save(ByVal sFilename As String) ' Inhalt der ComboBox speichern Dim F As Integer Dim I As Integer F = FreeFile Open sFilename For Output As #F With Combo1 For I = 0 To .ListCount - 1 Print #F, .List(I) Next I End With Close #F End Sub Laden der gespeicherten Liste Public Sub Combo_Read(ByVal sFilename As String) ' Combo-Inhalt einlesen Dim F As Integer Dim sLine As String With Combo1 ' Combo zunächst leeren .Clear If Dir(sFilename) <> "" Then F = FreeFile Open sFilename For Input As #F While Not EOF(F) Line Input #F, sLine .AddItem sLine Wend Close #F End If End With End Sub Das war's dann auch schon Den Aufruf Combo_Read setzt man am einfachsten in das Form_Load-Ereignis. Das Speichern erfolgt dann im Form_Unload-Ereignis. Option Explicit Dim sFilename As String Private Sub Form_Load() ' ComboBox-Inhalt einlesen sFilename = App.Path & "\eingabe.dat" Combo_Read sFilename End Sub Private Sub Form_Unload(Cancel As Integer) ' ComboBox-Inhalt speichern Combo_Save sFilename End Sub Dieser Tipp wurde bereits 27.528 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |