У меня есть System.Windows.Forms.TreeView
, закрепленный внутри панели. Я устанавливаю node программно. Какой метод или свойство я использовал бы, чтобы дерево просмотрело выбранное в представлении?
Прокрутите выбранный TreeView node в поле зрения
Ответ 1
node.EnsureVisible();
например:
if(treeView.SelectedNode != null) treeView.SelectedNode.EnsureVisible();
(см. MSDN)
Ответ 2
У меня также были проблемы с этим и выяснили, что treeview.ExpandAll() игнорирует эффект EnsureVisible() и избегает прокрутки в позиции node.
Просто вызовите EnsureVisible() после ExpandAll(), если вы хотите, чтобы полное расширенное дерево было прокручивается в node, который вы выбрали.
Ответ 3
У меня возникли проблемы с node.EnsureVisible()
, которые не работают для деревьев с одним уровнем узлов.
Чтобы исправить это, используйте BindingIndex
, чтобы идентифицировать node. Затем выбранный node будет прокручиваться.
В примере показан myTable
из запроса LINQ.
node.BindingIndex = Convert.ToInt32(mytable.Id);
Надеюсь, это поможет некоторым из вас.