vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
ListView mit Scrollbar aber ohne Autoscroll 
Autor: Legend_X
Datum: 11.07.14 22:27

Hallo.

Ich habe eine Listview mit Items drin (mehr als
im sichtbaren Bereich angezeigt werden können).
Mit Scrollable = True wird rechts eine vertikale
Scrollbar angezeigt, mit der man in der Liste
scrollen kann. Diese Scrollbar möchte ich auch
da haben.

Problem: wenn ich auf das letzte sichtbare (unterste)
Item klicke, wird der ListView-Inhalt automatisch um
eine Position hochgescrollt (das letzte sichtbare
Item wird dann zum vorletzten sichtbaren Item).

[B]Dieses Verhalten will ich VERHINDERN (ich will also
rechts ne Scrollbar, aber NICHT, dass beim Klicken
auf das letzte sichtbare Item ein automatischer
Scroll erfolgt).[/B]

Weiss jemand eine EINFACH zu implementierende
straight-forward Lösung dafür?

Vorweg: bitte keine Antworten wie 'nimm doch Google',
ich hab WIRKLICH gesucht (Gott, ich hab GESUCHT!) und
nix gefunden, was funktioniert oder was ein Anfänger
wie ich brauchbar ableiten könnte, sonst würde ich
hier keinen damit belästigen.

Bitte auch keine Antworten wie 'mach doch xxx, wie unter
folgendem Link beschrieben'. Ich bin noch sehr unerfahren.
Wenn ihr ne Lösung wisst, bitte gebt mir eine abstrakte
einfach verständliche Beschreibung, wie das gemacht
werden könnte, und dann bitte ein funktionierendes
Codebeispiel dazu mit Kommentaren...

Falls Subclassing eines ListView die Lösung ist, bitte
so ausführlich wie möglich beschreiben. Für DoubleBuffering
hab ich Subclassing eines ListView grad noch so hinbekommen,
aber darüber hinaus fehlt mir wohl das Wissen. :/

VIELEN Dank im voraus.

Beitrag wurde zuletzt am 11.07.14 um 22:29:53 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ListView mit Scrollbar aber ohne Autoscroll 
Autor: Kuno60
Datum: 12.07.14 15:39

Dies ist ein normales Verhalten und kann nicht abgeschaltet werden.
Wenn man eine Zeile oder ein Element auswählt, das nicht vollständig sichtbar ist, so wird automatisch gescrollt, damit es voll sichtbar wird.
Das gleiche Verhalten hat auch der Windows-Explorer.

Mögliche Abhilfe:
Passe die Höhe des ListView so an, dass keine Elemente nur teilweise sichtbar sind.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: ListView mit Scrollbar aber ohne Autoscroll 
Autor: Legend_X
Datum: 12.07.14 18:29

Ok... danke, das hat mir schon mal ne tiefere Einsicht
in die Funktionsweise einer ListView ermöglicht.

Ich will eine ListView programmieren, wo man Items mit der
Maus verschieben kann. Beim Draufklicken & Festhalten des
Mausbuttons wird das Item markiert, und wenn sich die Maus
dann über ein anderes Item bewegt (MouseMove), werden die Items
vom Programm getauscht und die Markierung entspr. neu gesetzt,
damit es so aussieht, als hätte man das markierte Item an
eine neue Position 'gezogen'.

Dieses 'automatische Hochscrollen' wär gar nicht so ein
Problem, wenn das irgendwie ein Ereignis auslösen würde,
damit ich darauf reagieren kann (also wieder zwei Items
tauschen und Markierung auf das unterste Item setzen).

Neue Frage: kann man irgendwie ein Ereignis auslösen,
wenn die ListView automatisch scrollt?

Alternativ: wie kann ich sicherstellen, dass die ListView
in jeder Situation _immer_ alle Elemente nur komplett sichtbar
und nie nur teilweise sichtbar anzeigt, auch wenn z.B. die
Fenstergröße nachträglich geändert wird?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel