Я использую TreeView, и я использую из этого код формы проверяемых и непроверяемых всех дочерних узлов, если выбрать родительский или дочерний узелснят только все дочерний узел в TreeView
private bool updatingTreeView;
private void CheckChildren_ParentSelected(TreeNode node, Boolean isChecked)
{
foreach (TreeNode item in node.Nodes)
{
item.Checked = isChecked;
if (item.Nodes.Count > 0)
{
this.CheckChildren_ParentSelected(item, isChecked);
}
}
}
private void SelectParents(TreeNode node, Boolean isChecked)
{
//MessageBox.Show(node.Parent.ToString());
if (node.Parent != null)
{
node.Parent.Checked = isChecked;
SelectParents(node.Parent, isChecked);
}
}
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (updatingTreeView) return;
updatingTreeView = true;
CheckChildren_ParentSelected(e.Node, e.Node.Checked);
SelectParents(e.Node, e.Node.Checked);
updatingTreeView = false;
}
Но теперь
здесь проблема:
, когда я снял флажок дочернего узла, я хочу, чтобы весь снимок был отмечен только в treeview.
нравится эта картина:
Но с моим кодом все родителем и ребенком (как) снят !!!
так что теперь я хочу знать, как я могу непроверенным только все дочерний узел в TreeView,
теперь, как изменить этот код для исправления этой проблемы?
С уважением.
В вашем примере, как бы вы когда-нибудь снять пометку узел 6? Кажется, что если вы только очищаете корневые узлы, вы никогда не сможете очистить корневой каталог – timmy
@timmy: я не знаю, что я могу с моим кодом или сейчас, но я знаю, что это возможно: D так что у вас есть любая идея для меня? :( – Sam
Для меня это выглядит так: SelectParents рекурсивно не проверяет все paretnts до node.Parent равно null. – Zilog