Dialog: Listbox zurücksetzen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Dialog: Listbox zurücksetzen

von Steffan » Fr, 03.11.2006 15:58

Hallo Stephan,

vielen Dank das hat geklappt.

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.

Steffan

von Stephan » Fr, 03.11.2006 13:38

Ich würde es so machen:

Code: Alles auswählen

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?



Gruß
Stephan

von Steffan » Fr, 03.11.2006 10:31

Hallo Thomas,

erst mal danke für Deine Antwort.

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.

Steffan

von Toxitom » Do, 02.11.2006 18:01

Hey Steffan,

na ja, die Methode war doch schon gut ;-) nur richtig füttern musst du sie. heissen müsste es:

Code: Alles auswählen

oLst.selectitemPos(1,False)
Dadurch wird der erste Eintrag deselektiert.

Also brauchst du nur die markierten Einträge (die Pos-Nummern erhälst du über den Array SelectedItemPos() ) alle zu deselectieren - fertig :-)

Oder du deselectierst über eine Schleife einfach alle Einträge. Das geht auch.

Gruss
Thomas

Dialog: Listbox zurücksetzen

von Steffan » Do, 02.11.2006 16:07

Hallo zusammen,

wie kann ich eine Listbox in einem Dialog makrogesteurt zurücksetzen, also so, dass kein Eintrag ausgewählt ist?

Code: Alles auswählen

oLst.selectitemPos(-1,True) 
macht es bei mir jedenfalls nicht.

Danke im Vorraus für Eure Hilfe,
Steffan.

Nach oben