| ListBox, ComboBox, Drag & Drop |
| |
| |
| Private Sub Form_Load() | |
| MannschaftenEinlesen lstMannschaften | ListBox lädt Werte. |
| MannschaftenEinlesen cboMannschaften | ComboBox lädt Werte. |
| StatusAnzeigen | Subprogramm wird aufgerufen. |
| End Sub | |
| |
| Sub MannschaftenEinlesen(Element As Control) | |
| Element.AddItem "Bayern" | Vorgegebene Werte werden in ListBox und ComboBox |
| Element.AddItem "Stuttgart" | eingefügt. |
| Element.AddItem "Dortmund" | |
| Element.AddItem "Köln" | |
| Element.AddItem "Karlsruhe" | |
| End Sub | |
| |
| Sub StatusAnzeigen() | |
| lblListCountCombo.Caption = cboMannschaften.ListCount | Menge der Werte und Überschriften werden ausgegeben. |
| lblListCountListe.Caption = lstMannschaften.ListCount | |
| lblListIndexCombo.Caption = cboMannschaften.ListIndex | |
| lblListIndexListe.Caption = lstMannschaften.ListIndex | |
| End Sub | |
| |
| Private Sub cmdAddItem_Click() | |
| Dim NeuerEintrag | |
| NeuerEintrag = InputBox("Geben Sie einen Namen ein:") | Über eine InputBox wird ein neuer Eintrag in die ListBox |
| If NeuerEintrag = "" Then Exit Sub | vorgenommen. |
| lstMannschaften.AddItem NeuerEintrag | |
| StatusAnzeigen | |
| End Sub | |
| |
| Private Sub cmdRemoveItem_Click() | |
| Dim EintragIndex | Über InputBox kann Eintrag der ListBox entfernt werden. |
| EintragIndex = Val(InputBox("Geben Sie die Nummer des zu entfernenden Eintrags ein:")) |
| If EintragIndex < 0 Or EintragIndex > lstMannschaften.ListCount - 1 Then |
| MsgBox Prompt:="Bitte einen Wert zwischen 0 und " & lstMannschaften.ListCount - 1 & " eingeben!", _ |
| Buttons:=vbExclamation, Title:="Eingabefehler!" | |
| Exit Sub | |
| End If | |
| lstMannschaften.RemoveItem EintragIndex | |
| StatusAnzeigen | |
| End Sub | |
| |
| Private Sub cmdNeuLaden_Click() | |
| lstMannschaften.Clear | Die ListBox wird geleert und wieder neu geladen. |
| MannschaftenEinlesen lstMannschaften | |
| StatusAnzeigen | Neuer Status wird angezeigt. |
| End Sub | |
| |
| Private Sub cmdClear_Click() | |
| lstMannschaften.Clear | Der Inhalt der ListBox wird komplett gelöscht. |
| End Sub | |
| |
| Private Sub cmdCboNeuLaden_Click() | |
| cboMannschaften.Clear | Die ComboBox wird mit VorgabeWerten gefüllt. |
| MannschaftenEinlesen cboMannschaften | |
| StatusAnzeigen | |
| End Sub | |
| |
| Private Sub cmdHinzufügenCombo_Click() | |
| cboMannschaften.AddItem cboMannschaften.Text | Ein Eintrag kann in die ComboBox hinzugefügt werden. |
| StatusAnzeigen | Ist das Eingabefeld leer, wird nur eine Leerzeile |
| End Sub | eingefügt. |
| |
| Private Sub cmdEntfernenCombo_Click() | |
| If cboMannschaften.ListIndex = -1 Then | |
| MsgBox Prompt:="Es ist kein Eintrag selektiert!", Buttons:=vbExclamation |
| Exit Sub | |
| End If | |
| cboMannschaften.RemoveItem cboMannschaften.ListIndex | Entfernt einen Eintrag aus der ComboBox. |
| StatusAnzeigen | |
| End Sub | |
| |
| Private Sub lstDropListe_OLEDragDrop(Data As DataObject, Effect As Long, _ |
| Button%, Shift%, X As Single, Y As Single) | |
| Dim tmpMannschaften, tmpMannschaft, CharPos | |
| lstDropListe.Clear | Über Drag & Drop (mit linker oder rechter Maustaste) kann |
| tmpMannschaften = Data.GetData(vbCFText) | ein neuer Eintrag (oder auch mehrere) von der ListBox |
| Do | in die DropListe eingefügt werden. |
| CharPos = InStr(tmpMannschaften, vbCrLf) - 1 | Der ursprüngliche Eintrag in der DropListe wird vorher |
| If CharPos <= 0 Then Exit Do | gelöscht. |
| tmpMannschaft = Left(tmpMannschaften, CharPos) | |
| lstDropListe.AddItem tmpMannschaft | |
| tmpMannschaften = Right(tmpMannschaften, Len(tmpMannschaften) - CharPos - 2) |
| Loop | |
| lstDropListe.AddItem tmpMannschaften | |
| End Sub | |
| |
| Private Sub lstMannschaften_Click() | |
| StatusAnzeigen | Bei Klick in die ListBox werden die Werte neu berechnet. |
| End Sub | |
| |
| Private Sub cboMannschaften_Click() | |
| lstEreignisse.AddItem "Click-Ereignis" | Ausgabe einer Ereignismeldung ins Ereignisprotokoll. |
| StatusAnzeigen | |
| End Sub | |
| |
| Private Sub cboMannschaften_Change() | |
| lstEreignisse.AddItem "Change-Ereignis" | Ausgabe einer Ereignismeldung ins Ereignisprotokoll. |
| End Sub | |
| |
| Private Sub cboMannschaften_DblClick() | |
| lstEreignisse.AddItem "DblClick-Ereignis" | Ausgabe einer Ereignismeldung ins Ereignisprotokoll. |
| End Sub | |
| |
| Private Sub cboMannschaften_DropDown() | Ausgabe einer Ereignismeldung ins Ereignisprotokoll. |
| lstEreignisse.AddItem "DropDown-Ereignis" | Drag & Drop-Ereignisse werden bei Style=1 der ComboBox |
| End Sub | nicht ausgelöst. |
| |
| Private Sub cboMannschaften_Scroll() | |
| lstEreignisse.AddItem "Scroll-Ereignis" | Ausgabe einer Ereignismeldung ins Ereignisprotokoll. |
| End Sub | |
|
| Per Drag & Drop können aus der linken oberen ListBox |
| Einträge in die linke untere ListBox gezogen werden. |
| In den Eigenschaften ist dazu folgende Einstellung |
| vorzunehmen: |
| OleDragMode = 1 |
|
|
| Eine Mehrfachauswahl in der ListBox erreicht man mit: |
| MultiSelect = 1 |
|
|
| Das Change-Ereignis in der ComboBox tritt nur auf, |
| wenn Einträge verändert werden (siehe Dortmun ). |
|
|
| Private Sub lstEreignisse_Click() |
| lstEreignisse.Clear | Das Ereignisprotokoll wird gelöscht. |
| End Sub | |
| |