WinForm中如何实现TreeView第一级节点不带CheckBox,其它级节点带CheckBox。 10

或者修改TreeView类给TreeView添加一个ShowCheckBox属性,像Web中TreeView的那样。好象C#Web中可以这样实现,但WinForm却没有S... 或者修改TreeView类给TreeView添加一个ShowCheckBox属性,像Web中TreeView的那样。
好象C#Web中可以这样实现,但WinForm却没有ShowCheckBox属性。
foreach(TreeNode tn in treeView1.Nodes)
{
if (tn.ChildNodes.Count > 0)
{
tn.ShowCheckBox = false;
}
else
{
tn.ShowCheckBox = true;
}
}
展开
 我来答
聚发稿网
2016-10-01 · 知道合伙人生活技巧行家
聚发稿网
知道合伙人生活技巧行家
采纳数:5647 获赞数:29663
聚发稿网创始人,作家,笔名志耘誉松著《机械魔敌》《笑泪恋曲》

向TA提问 私信TA
展开全部
楼主没有考虑“如果勾选所有子节点,父节点也会勾选;如果某子节点取消勾选,则所有父节点也取消勾选”,下面的代码能全做到://设置标志,防止死循环boolcheck=false;//节点勾选后事件,如果更改某一节点状态会自动触发,所以在后面的方法中无需递归privatevoidtreeView1_AfterCheck(objectsender,TreeViewEventArgse){if(check==false)setchild(e.Node);setparent(e.Node);check=false;}//设置子节点状态privatevoidsetchild(TreeNodenode){foreach(TreeNodechildinnode.Nodes){child.Checked=node.Checked;}check=true;}//设置父节点状态privatevoidsetparent(TreeNodenode){if(node.Parent!=null){//如果当前节点状态为勾选,则需要所有兄弟节点都勾选才能勾选父节点if(node.Checked)foreach(TreeNodebrotherinnode.Parent.Nodes){if(brother.Checked==false)return;}node.Parent.Checked=node.Checked;}}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式