Scrollen im Treeview

JJB

Cogito ergo brumm
TachTach !

Hat jemand eine Ahnung wie man in einem Treeview einen Scrollvorgang durchführt ?

Jedesmal wenn ich etwas in meiner Treeview ändere und sie neu gezeichnet wird, bin ich in der letzten Zeile und kann wieder nach ganz oben blättern... gibt es keine Möglichkeit, auf die erste Zeile zu fokusieren ?

MFG JJB

_
 
Hallo!

Ein ähnliches Problem wurde in diesem [thread=187427]Thread[/thread] auch schon mal diskutiert.
Leider hab ich noch nicht denn Fall gehabt würde es aber so machen:
Als erstes würde ich aus dem TreeView eine Component-Klasse erstellen, wegen der OOP.
Den Text der angeklickten Node erstmal "merken" und auch den der übergeordneten Nodes. Wenn Du auf die Node klickst, holst Du dir nacheinander alle ParentNodes und schreibst die Namen in eine ArrayList.
Wenn der TreeView wieder gefüllt ist, kannst Du mit einer Rekursion und einem globalen Zähler, der das aktuelle Element in der ArrayList darstellt, in deinem TreeView-Component von oben bis zur Gewünschten Node wandern und sie mit
Code:
TreeView.SelectedNode.EnsureVisible();
sichtbar machen.

Ich kann mir gut vorstellen dass die Art und Weise etwas ungenau sein kann wenn gleiche Namen vorhanden sind.
Wenn jemand einen einfacheren Vorschlag hat soll er sich bitte melden.
Ich hoffe ich konnte irgendwie helfen.

MfG cosmo
 
Was spricht gegen folgenden Code

Code:
if (treeView1.Nodes.Count>0)
	this.treeView1.SelectedNode = treeView1.Nodes[0];

Damit wird (sofern Nodes vorhanden sind) genau die erste Node selektiert. Sprich die TreeView scrollt ganz nach oben.
 
Tach !

SelectNode markiert den Knoten scrollt aber noch lange nicht an dessen Position.

Es geht jedoch mit:

Code:
         treeViewer.Focus();                // Nicht unbedingt nötig
         treeViewer.ExpandAll();            // Nicht unbedingt nötig
         treeViewer.SelectedNode = treeViewer.Nodes[0];
         treeViewer.SelectedNode.EnsureVisible();
Danke !

_
 

Neue Beiträge

Zurück