У меня есть TreeView в моей форме, но я бы хотел, чтобы он всегда был полностью расширен, даже дочерние узлы.
Есть ли способ?
У меня есть TreeView в моей форме, но я бы хотел, чтобы он всегда был полностью расширен, даже дочерние узлы.
Есть ли способ?
Вы хотите, чтобы изначально отображалось расширенное? Если это так, то вызовите метод ExpandAll
на корневом узле после того, как вы добавили все узлы дерева.
Если вы хотите, чтобы он отображался расширенным и не позволял пользователю свернуть его, вам необходимо обработать событие BeforeCollapsed
и отменить его. (Установите e.Cancel = true;
).
Одним из способов является использование TreeView.ExpandAll()
следующим образом:
private void myCheckBox_CheckedChanged(object sender, System.EventArgs e)
{
// If the check box is checked, expand all the tree nodes.
if (myCheckBox.Checked == true)
{
myTreeView.ExpandAll();
}
else
{
myTreeView.CollapseAll();
}
}
В WPF одним из способов является полное расширение представления дерева:
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True" />
</Style>
</TreeView.ItemContainerStyle>
Угадайте здесь... В событии BeforeCollapsed установите e.Cancel = true;
Попробуйте метод TreeNode.EnsureVisible - [1]: https://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.ensurevisible(v=vs.90).aspx
Используйте этот код:
private void ManagerFolder_Load(object sender, EventArgs e)
{
treeView.ExpandAll();
treeView.Nodes[0].FirstNode.Collapse();
treeView.Nodes[4].FirstNode.Collapse();
}
Вам может быть интересно, куда положить инструкцию treeview1.expandAll()
? Вы не можете поместить его в код, созданный конструктором, или он будет удален при следующем обновлении/сохранении формы.
Я поместил его в код "Form1.cs", в части частичного класса, которая занимается инициализацией формы, и она работает. Сразу после утверждения InitializeComponent() (если вы не знаете, о чем я говорю, просто найдите этот оператор)
Надеюсь, это поможет:)
PD. Спасибо за вашу поддержку, вы здорово, ребята!