Zwei ListBox(en) "verbinden"
-
Hallo Community,
auf meinem Form befinden sich zwei oder mehrere Komponenten des Typs 'ListBox'.
Wenn die Anzahl der Einträge der ListBox(en) steigt, werden automatisch Scrollbalken aktiviert. Wenn ich jetzt in einer der Listen scrolle, so wird logischerweise nur die eine ListBox gescrollt.Was ich gerne hätte, wäre eine "Verbindung" der beiden Listen: Das wenn man in einer der beiden Listen scrollt, alle ListBox(en) mit scrollen.
Zum Beispiel wenn in der 'listBox1' die Vornamen und in der 'listBox2' die Nachnamen stehen, wäre es benutzerfreundlicher wenn beide Listen scrollen sobald man den Scrollbalken einer Liste benutzt.
Kennt einer von euch eine Möglichkeit, wie sich mein Problem lösen ließe?
Anmerkung: Die Vor- und Nachnamen in jeweils eine ListBox zu schreiben, möchte ich wenn möglich verhindern.
Gruß
Jeg
-
Wieso verwendest du dazu nicht eine
ListView
? DannView
aufDetails
setzen und du hast eine Tabelle.Grüssli
-
Eine ListView wäre eine Alternative. Jedoch würde ich gerne eine Lösung mit der ListBox finden. Da für meinen Geschmack die ListView ein wenig unhandlich ist.
Aber danke für den Hinweis.
Gruß
Jeg
-
Wie wär's mit Owner-Draw-Listbox? Es mehr Programmieraufwand, aber dafür entspricht das Ergebnis exakt deinen Vorstellungen.
-
Jeg_D schrieb:
Da für meinen Geschmack die ListView ein wenig unhandlich ist.
Inwiefern?
Und vor allem fraglich im Vergleich zu den anderen Lösungen mit der ListBoxEine Möglichkeit hätte ich noch gefunden, aber handlich ist die nicht. In diesem Artikel wird beschrieben, wie man an die Scroll-Events der ListBox kommt:
http://www.codeproject.com/KB/combobox/ScrollingListbox.aspxSo kannst du ein Event auslösen, wenn "gescrollt" wird. Die Scrollposition muss du dann in der anderen ListBox anpassen und dazu könntest du
SetScrollPos
aus der WinAPI verwenden. Also jede Menge P/Invoke KramGrüssli
-
Ich hab dazu noch
ListBox.TopIndex
gefunden. Ggf hilft das auch weiter
http://msdn.microsoft.com/de-de/library/system.windows.forms.listbox.topindex.aspx