to Eddie005(♂) 暴赱 『零零伍』(︶︵︶) : 刚刚开会定了一个新功能,就是树上某些分支有Checkbox,某些分支没有,也就是说要实现动态加载某节点的时候来决定这个节点是否有Checkbox,有没有过啊
to liujiwe79(独孤求胜) : 没收到。
to 刚刚开会定了一个新功能,就是树上某些分支有Checkbox,某些分支没有,也就是说要实现动态加载某节点的时候来决定这个节点是否有Checkbox,有没有过啊你可以用Icon来代替Checkbox,即用图形来模拟Checkbox的选中和非选中还有Eddie005的方法只是判断了是由Mouse触发,那么在按键触发的时候,会出现死机问题,即判断要稍做改动,参看 http://blog.csdn.net/knight94/archive/2006/04/10/657658.aspx
下载TriStateTreeView.zip里面有dll和代码,如果下载不到,你可以留个信箱地址,我发给你一个,这个整体效果不错
{
ChangeSelected(e.Node); if(e.Action == System.Windows.Forms.TreeViewAction.ByMouse)
SelectedChanged(e.Node);
}
private void ChangeSelected(TreeNode node)
{
foreach(TreeNode tmp in node.Nodes)
tmp.Checked = node.Checked;
}
private void SelectedChanged(TreeNode node)
{
System.Windows.Forms.TreeNodeCollection nodes = null;
if(node.Parent == null)
nodes = node.TreeView.Nodes;
else
nodes = node.Parent.Nodes; int i = 0;
foreach(TreeNode tmp in nodes)
if(tmp.Checked) i++; this.textBox1.Text = i.ToString();
if((i==nodes.Count) && ((node.Parent!=null)))
{
((TreeNode)node.Parent).Checked = true;
SelectedChanged((TreeNode)node.Parent);
}
else if((i==0) & ((node.Parent!=null)))
{
((TreeNode)node.Parent).Checked = false;
SelectedChanged((TreeNode)node.Parent);
}
}
刚刚开会定了一个新功能,就是树上某些分支有Checkbox,某些分支没有,也就是说要实现动态加载某节点的时候来决定这个节点是否有Checkbox,有没有过啊
没收到。
http://blog.csdn.net/knight94/archive/2006/04/10/657658.aspx
在codeproject上到是可以找到一个比较复杂的例子,是用图片来模拟了Checkbox的功能,但是那样就没有给每个节点再增加自定义图片的功能了!哎,怎么办呢?