Просьба советовать, как программно прокручивать элемент управления TreeView.Как программно прокручивать элемент управления TreeView?
Он не использует никаких общедоступных методов для прокрутки.
Просьба советовать, как программно прокручивать элемент управления TreeView.Как программно прокручивать элемент управления TreeView?
Он не использует никаких общедоступных методов для прокрутки.
Если вам нужно, чтобы перейти к узлу:
TreeNode.EnsureVisible();
+1, правильный ответ. –
yup, если вы точно знаете, какой узел вы ищете, то вышеупомянутый фрагмент кода будет программно прокручиваться до рассматриваемого узла. – IbrarMumtaz
Просто выберите и снимите нижний элемент. Это должно делать свое дело.
Попробуйте это:
treeView1.TopNode = treeView1.Nodes[500];
EDIT Может быть более наводящий :-)
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++) {
TreeNode node = treeView1.Nodes.Add(i.ToString());
for (int j = 0; j < 10; j++) {
node.Nodes.Add(j.ToString());
}
}
}
private void ScrollNode(TreeNode node) {
treeView1.TopNode = node;
treeView1.Refresh();
System.Threading.Thread.Sleep(50);
if (node.IsExpanded) {
foreach (TreeNode subNode in node.Nodes)
ScrollNode(subNode);
}
}
private void button1_Click(object sender, EventArgs e)
{
treeView1.Focus();
foreach (TreeNode node in treeView1.Nodes) {
ScrollNode(node);
}
}
Что делать, если нет 500 узлов ?! – fletcher
Что делать, если у вас нет 500 узлов? ;-) –
Флориан, спасибо за ответ. Как подключить внешний VScrollBar к TreeView? –
Какие UI fra mework? Windows Forms, ASP.NET, WPF или Silverlight? –