Listbox springt bei Scrollbalken-Nutzung
-
Habe ein mittelschweres Problem: Habe eine Listbox gefüllt aus einer Access-DB mit insgesamt 83000 Einträgen (A-Z). Ziehe ich nun den Scrollbalken in Richtung "Z" springt er ca. bei "S" wieder zurück zu "E". Nutze ich die Pfeiltaste um den Index zu versetzen komme ich zu "Z" ???
Jemand eine Idee???
-
Das könnte an der internen Genauigkeit der Scrollbox-Positionsberechnung liegen (wahrscheinlich sind dafür nur 2 Byte, d.h. max. 65536 verschiedene Positionen vorgesehen).
Macht es denn überhaupt Sinn, soviele Einträge in eine Listbox einzutragen.
Besser wäre es doch, du überlegst dir eine Filter-Möglichkeit.
-
Generell ist die Überlegung mit dem Filter natürlich richtig.
Das Problem ist, dass die Datenbank insgesamt 170.000 Einträge umfasst und 18 Spalten hat in denen gesucht werden kann. Beim Programmstart wird die Liste also per group by Spalte1 gefüllt und dann soll der Index per Eingabe in einer Textbox zum entsprechenden Value springen.
So weit so gut - allerdings soll der Anwender auch die Möglichkeit haben, durch die Listbox zu scrollen um z.B. zu "Y..." zu gelangen. Allerdings erscheinen nach "ST..." wieder die Einträge von "E...." gaaanz seltsam.
Wenn man dann den Scrollbalken wieder loslässt springt der TopIndex auf "E...".
-
1. Verwende mal ein CListCtrl.
2. Kann der Benutzer eine Buchstabentaste anklicken.
3. Kann der Neutzer unter den Rollbalken Thumb klicken um zu rollen.Rechne mal selbst. Wenn der Rollbalken 600 Pixel hoch ist und Deine Listbox 170000 Einträge hat, dann entspricht 1 Pixel...
