大侠们,求Treeview里checkbox父节点被选中,子节点全部被选中。

liulangze 2009-11-10 10:24:57
如题。请大侠们指导指导。
...全文
68 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
buzhidao945 2011-12-08
  • 打赏
  • 举报
回复
#region "树的选中状态"
private void EnableCheck(bool bol)
{
foreach (TreeNode td in tree_GongNeng.Nodes)
{
td.Checked = bol;
CheckAllChildNodes(td, td.Checked);
}
}
#endregion

#region 选中子节点
public void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
{
foreach (TreeNode node in treeNode.Nodes)
{
node.Checked = nodeChecked;
if (node.Nodes.Count > 0)
{
this.CheckAllChildNodes(node, nodeChecked);
}
}
}
#endregion


private void tree_GongNeng_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Node.Nodes.Count > 0)
{
CheckAllChildNodes(e.Node, e.Node.Checked);
}
}

private void grv_QuanXianLieBiao_Click(object sender, EventArgs e)
{
EnableCheck(false);
}
yanglinqiang 2009-11-10
  • 打赏
  • 举报
回复
 private void treeView1_AfterCheck_1(object sender, TreeViewEventArgs e)
{
for (int i = 0; i < e.Node.Nodes.Count; i++)
e.Node.Nodes[i] = e.Node.Checked;
}
h_w_king 2009-11-10
  • 打赏
  • 举报
回复
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
if (e.Action == TreeViewAction.Unknown)
return;

if (e.Node.Checked)
CheckAllNodes(e.Node.Nodes);

}

private void CheckAllNodes(TreeNodeCollection nodes)
{
foreach (TreeNode n in nodes)
{
n.Checked = true;
if (n.Nodes.Count > 0)
CheckAllNodes(n.Nodes);
}
}
liulangze 2009-11-10
  • 打赏
  • 举报
回复
大侠,我先试试。
surlew 2009-11-10
  • 打赏
  • 举报
回复

private void tree_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if (e.Node.Checked)
{
foreach (TreeNode tn in e.Node.Nodes)
{
tn.Checked = true;
}

}
else
{
foreach (TreeNode tn in e.Node.Nodes)
{
tn.Checked = false;
}
}
}

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧