Listbox mit Checkboxfunktion

Æmulus

Grünschnabel
Hallo Leute, ich schreibe gerade an einem kleinen Programm zur Berechnung von Laufzeiten, die sich durch Eingabe von unterschiedlichen Start- und Zielkoordinaten ergeben. Nach einer beendeten Laufzeitermittlung, wird das Ergebnis, zusammen mit den dazugehörenden Koordinaten in einem Textfeld ausgegeben und man kann mit der nächsten Berechnung beginnen, deren Ergebnis zusammen mit den Umgebungsvariablen erneut, mit einer Zeile Abstand zum vorherigen Eintrag, ins Textfeld geschrieben wird. So zumindest der Status bisher…
Tatsächlich soll der Benutzer aber am Ende seiner Berechnungen die Möglichkeit haben, aus aufgelisteten Ergebnissen eine Auswahl zu treffen um mit diesen dann weiterzuarbeiten. So was lässt eine Textbox natürlich nicht zu. Auch eine normale Listbox finde ich für diesen Fall eher ungeeignet. Am liebsten wäre mir eine Listbox-Checkbox-Kombination. Dass es so was gibt weiß ich. Etwa bei VB6 selbst, wenn es darum geht, neue Steuerelemente dem Projekt hinzuzufügen. Ich weiß bloß nicht wo bzw. wie sich das über Umwege bewerkstelligen lässt.
Ich stelle mir das in etwa so vor, jeder Eintrag besteht aus ca. 3 Zeilen, hat eine Zeile Abstand zum vorherigen Eintrag und beginnt mit einem Ankreuzfeld zur Auswahl.

[ ] Eintrag 1
blablabla
blablabla

[ ] Eintrag 2
blablabla
blablabla

[ ] usw.

Ich hoffe ich habe mein Problem einigermaßen verständlich formuliert und würde mich über eine Hilfestellung freuen. Ich verwende übrigens VB6 und würde nur ungern auf VB.Net oder was Anderes umsteigen.
 
nimm doch ein treeview control damit kannst du die Hierarchie am besten abbilden.
Von infragistics (kostenpflichtig!) gibt es sogar eins bei dem man Häckchen setzen kann.

Grüsse bb
 
Hirarchie benötige ich gar keine. Die Einträge sind alle "gleichrangig". Es geht tatsächlich nur um die Möglichkeit, die einzelnen aber mehrzeiligen Ergebnisblöcke, so komfortabel wie möglich auswählen zu können. Wäre es möglich in einem Textfeld einzelne Blöcke mit jeweils einem Klick, der Reihe nach zu markieren, würde ich das nutzen.
 
Hi Emulus

In den Eigenschaften der Listbox kannst Du irgendwo (Style? oder so) einstellen, das du vor jedem Eintrag eine Checkbox willst. Die kannst Du dann wie folgt auslesen:

for i= 0 to list1.listcount-1
list1.listindex=i
if list1.selected(i) then
'ausgewählt
else
'nicht ausgewählt
end if
next i

Gruß Elvan
 
Perfekt, das war genau das was ich gebraucht habe. Vielen Dank.
Auf die Idee, dass es direkt vor meiner Nase liegt bin ich natürlich nicht gekommen.

Und auch vielen Dank für den Codeschnippsel. Das wäre wie du dir sicherlich gedacht hast gleich die nächste Frage gewesen. Sehr vorrausschauend. :)

Daher eine andere Frage:
Zwar nicht unbedingt wichtig aber trotzdem schön, wäre nun noch wenn ich die einzelnen Einträge in der Listbox in mehrere Zeilen schreiben könnte. Ein Textfeld lässt dies mit der Option "Multiline = true" zu. Gibt es sowas in der Art auch für die herkömmliche Listbox? Oder ist hier jeder Eintrag tatsächlich in eine einzelne Zeile zu verfassen?
 
Hi Emulus

freut mich sehr, das ich dir helfen konnte :)

Zu Deiner "multiline" Geschichte... das ist bei Listboxen schon möglich, aber recht aufwendig. Da musst Du mit Api´s rumtricksen.
Alternativ könnte man vielleicht noch alle drei Einträge eintragen und dann die Checkboxen so gruppieren, das immer alle drei CheckBoxen angeklickt/ausgewählt werden. Aber auch bei diesem Ansatz artet das bei einer variablen Anzahl von Einträgen ganz schön aus.

Ich mein: Bei 100 Eintragen sind in Deiner Liste 300 Checkboxen. Wenn ich als User nun 10 auswählen wollen würde, bekomme ich schon bei dem Gedanken daran einen Wuselflash, :)
Es gibt natürlich noch weitere Möglichkeiten, dazu müsste man aber genauer wissen wie die Daten vorliegen... woher sie kommen... wo sie hingehen... was sie machen(also Hobbys, Freizeitbeschäftigung ect. huch da kommt schon wieder der Sozialpädagoge in mir durch sry)

Grüsse Elvan
 
Zurück