如何自动选择所选父节点下的子节点... [英] how the childnodes under the selected parent node will be selected automatically...

查看:114
本文介绍了如何自动选择所选父节点下的子节点...的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好...
我有win形式的treeview是动态加载的.在此树形视图中,我将获得带有每个节点的复选框...
现在,如果我选择了父节点,那么还应该选择所选节点下的子节点.
如何为此编写代码.请给我建议.
谢谢.

[删除了不需要的预标签]

Hi all...
I have the treeview in win form which is dynamically loaded. In this treeview, I will get checkboxes along with each node...
Now, if i selected the parent node then the childnodes under the selected nodes should also be selected.
How to write code for this. Please suggest me.
Thank you.

[Removed unneeded pre tags]

推荐答案

private void addParentNode_Click(object sender, EventArgs e) {
  treeView2.BeginUpdate();
  //treeView2.Nodes.Clear();
  string yourParentNode;
  yourParentNode = textBox1.Text.Trim();
  treeView2.Nodes.Add(yourParentNode);
  treeView2.EndUpdate();
}
private void addChildNode_Click(object sender, EventArgs e) {
  if (treeView2.SelectedNode != null) {
    string yourChildNode;
    yourChildNode = textBox1.Text.Trim();
    treeView2.SelectedNode.Nodes.Add(yourChildNode);
    treeView2.ExpandAll();
  }
}

private void addChildNode_Click(object sender, EventArgs e) {
  var childNode = textBox1.Text.Trim();
  if (!string.IsNullOrEmpty(childNode)) {
    TreeNode parentNode = treeView2.SelectedNode ?? treeView2.Nodes[0];
    if (parentNode != null) {
      parentNode.Nodes.Add(childNode);
      treeView2.ExpandAll();
    }
  }

}


谢谢&问候阿塔蒂·萨卡(nemo)
请不要忘记回答/帮助投票.它鼓励我们为您提供帮助...:thumbsup :: rose:


Thanks & Regard Aarti.Thakkar (nemo)
Do not Forget to Vote as Answer/Helpful, please. It encourages us to help you...:thumbsup::rose:


嗨...

我为此编写了如下代码,但是缺少一些逻辑.如何添加该逻辑,请让我知道..或者您也可以给我自己的代码

-------------------------------------------------
hi...

I wrote the code for this as below but some logic is missed. How to add that logic please let me know.. or you can give me your own code

-------------------------------------------------
Boolean bChildTrigger = true;
       Boolean bParentTrigger = true;

       private void trView_AfterCheck(object sender, TreeViewEventArgs e)
       {
         
           if (bChildTrigger)
           {
               CheckAllChildren(e.Node, e.Node.Checked);
           }
           if (bParentTrigger)
           {
               CheckMyParent(e.Node, e.Node.Checked);
           }

       }

       void CheckAllChildren(TreeNode tn, Boolean bCheck)
       {
           bParentTrigger = false;
           foreach (TreeNode ctn in tn.Nodes)
           {
               bChildTrigger = false;
               ctn.Checked = bCheck;
               bChildTrigger = true;

               CheckAllChildren(ctn, bCheck);
           }
           bParentTrigger = true;
       }

                void CheckMyParent(TreeNode tn, Boolean bCheck)
                {
                    if (tn == null) return;
                    if (tn.Parent == null) return;

                    bChildTrigger = false;
                    bParentTrigger = false;
                    tn.Parent.Checked = bCheck;
                    CheckMyParent(tn.Parent, bCheck);
                    bParentTrigger = true;
                    bChildTrigger = true;
                }
----------------------------------------------------------------
<pre>
 when I selected the parent node, automatically the child nodes are selected and the root node is also selected. But the problem is when I deselect the any one of the selected child nodes then the Parent node and Root node are also getting deselected state even some child nodes are already in selected state.
please solve this problem

thank you


这篇关于如何自动选择所选父节点下的子节点...的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆