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.523 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. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! 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 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |