Winform的treeview里的checkbox问题 我的treeview有三层如:中国 广东 广州 深圳 安徽 合肥 .......我选项中广东时,下面的广州,深圳也选上,选中国时都选上,大致是这样的.然后得到选中的值,这个过程怎么实现,要源码.谢谢., 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e) { TreeNode n = e.Node; CheckSubNode(n.Nodes, true); }//用这个 void CheckSubNode(TreeNodeCollection nodes, bool isChecked) { foreach(TreeNode node in nodes) { node.Checked = isChecked; if (node.Nodes.Count>0) { CheckSubNode(node.Nodes, isChecked); } } } private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e){ CheckSubNode(e.Node.Nodes, e.Node.Checked);} 偶还没明白你用的哪个treeview哩!BS还是CS那个 方法不一样地 鼎鼎强,上面已写了是winform.c/s 的.我的QQ是:408954312.高手们在讲解问题的时候能不能留下高人们的QQ或MSN号.谢谢了.还没有思路啊.等待.... private void tvList_BeforeSelect (object sender,System.Windows.Forms.TreeViewCancelEventArgs e) { txtShow.Text=e.Node.Text; }加一句代码就行了 txtShow.Text=e.Node.Text;放到 treeview1_BeforeSelect 这个事件里 刚才偶得帖子没说清楚,txtShow是显示选中节点值得文本框,tvlist是treeview控件msn:[email protected] breeze_82(一天学一点) :txtShow哪里来的 weisunding(鼎鼎) ,你号是多少,我还有不明白的地方,想当面请教.谢谢. 鼎鼎的代码并不全。他只是影响了子节点,但父节点并没有。bool blJmp = false;//标志private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e){ if(this.blJmp)return; foreach(TreeNode tn in e.Node.Nodes)//影响子节点 { tn.Checked = e.Node.Checked; } this.blJmp = true; this.SetCheck(e.Node);//处理父节点 this.blJmp = false;}private void SetCheck(TreeNode n){ if(n.Checked)//如果当前节点选中,则父节点也要选取中 { this.parentNode(n,n.Checked); } else//如果当前节点没有选中,且同级节点中都没有选中,则父节点也不要选中 { if(n.Parent != null) { //如果同一级中没有被选中,则其父级也同时设为不选中,在这种情况下,递归父节点 if(this.nextNotCheck(n.Parent.FirstNode)) { n.Parent.Checked = false; this.SetCheck(n.Parent); } } }}private void parentNode(TreeNode n,bool check){ if(n.Parent != null) { n.Parent.Checked = check; this.parentNode(n.Parent,check); }}//下一个节点是不是没有选中private bool nextNotCheck(TreeNode n){ if(n.Checked) return false; if(n.NextNode == null) return true; return this.nextNotCheck(n.NextNode);} n.Parent.Checked中,n.Parent没有Checked属性. 如何实现在界面点击添加按钮可在DataGridView最后一行中可以添加数据,点击保存按钮,可以保存到数据库中!! 请问C#事务批量插入数据怎么做啊? 如何取出一个listview的头像索引? 新闻发布系统,速度很慢怎么办? 如何通过查询在数据绑定时去除重复项? 提供免费SVN空间,可以建立私有项目 加载DLL的错误 NT4 SERVER中运行C#写的程序不能运行... 向高手请教: 关于查询结果显示的问题!! 有谁能将应用程序反汇编吗? Socket问题500分 cookie可以跨网站传递吗?
{
TreeNode n = e.Node;
CheckSubNode(n.Nodes, true); }//用这个
void CheckSubNode(TreeNodeCollection nodes, bool isChecked)
{
foreach(TreeNode node in nodes)
{
node.Checked = isChecked;
if (node.Nodes.Count>0)
{
CheckSubNode(node.Nodes, isChecked);
}
}
}
{
CheckSubNode(e.Node.Nodes, e.Node.Checked);
}
(object sender,System.Windows.Forms.TreeViewCancelEventArgs e)
{
txtShow.Text=e.Node.Text;
}
加一句代码就行了 txtShow.Text=e.Node.Text;
放到 treeview1_BeforeSelect 这个事件里
bool blJmp = false;//标志
private void treeView1_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if(this.blJmp)return;
foreach(TreeNode tn in e.Node.Nodes)//影响子节点
{
tn.Checked = e.Node.Checked;
}
this.blJmp = true;
this.SetCheck(e.Node);//处理父节点
this.blJmp = false;
}
private void SetCheck(TreeNode n)
{
if(n.Checked)//如果当前节点选中,则父节点也要选取中
{
this.parentNode(n,n.Checked);
}
else//如果当前节点没有选中,且同级节点中都没有选中,则父节点也不要选中
{
if(n.Parent != null)
{
//如果同一级中没有被选中,则其父级也同时设为不选中,在这种情况下,递归父节点
if(this.nextNotCheck(n.Parent.FirstNode))
{
n.Parent.Checked = false;
this.SetCheck(n.Parent);
}
}
}
}
private void parentNode(TreeNode n,bool check)
{
if(n.Parent != null)
{
n.Parent.Checked = check;
this.parentNode(n.Parent,check);
}
}
//下一个节点是不是没有选中
private bool nextNotCheck(TreeNode n)
{
if(n.Checked) return false;
if(n.NextNode == null) return true;
return this.nextNotCheck(n.NextNode);
}