Allerdings ist das nur die halbe Wahrheit. Durch eine Schleife über alle Einträge mit .selectItemPos(i, False) wird wie gewünscht .selectedItemPos=-1 gesetzt, aber an der Ansicht (bei einer aufklappbaren Listbox) ändert sich nichts!
Der Nutzer kann so also nicht unterscheiden ob die Listbox zurückgesetzt wurde oder gerade nur keinen Fokus hat.
Mit anderen Worten: Iich hätte gern als Ergebnis des Zurücksetzens eine schöne, leere Listbox.
Die Verwendung von .MakeVisible(-1) hat mir da leider auch nicht weitergeholfen.
With oLst
.addItem("",.getItemCount())
.selectItemPos(.getItemCount(),false)
.RemoveItems(.getItemCount()-1,1)
End With
aber mich fragen wozu das Ganze gut sein soll. Ein Kombinationsfeld täte das Ganze einfacher, ich sehe nämlich nicht welchen Vorteil eine aufklappbare Listbox hier bietet, hatte nun vermutet es wäre (trotz optisch ungünstigen Effekts) ggf. doch Mehrfachselektion möglich, aber es geht garnicht. Wozu ist also die aufklappbare Listbox gut?
Deine Frage nach den Sinn will ich aber noch beantworten:
Die Listbox ist in einem Suchdialog für Datenbankeinträge und enthält mögliche Kategorien. Kombinationsfeld geht deshalb nicht, weil der Nutzer aus vorhandenen Kategorien wählen soll und keinen eigene Text eintragen soll. Aufklappbar ist die Listbox, weil es einfach Platz spart.
Und gebraucht wird das Zurücksetzen für eine Resetfunktion. Damit erhalten alle Controls ihren Ausgangszustand ohne den Dialog zu schließen. Anschließend kann eine neue Suche gestartet werden.