求助当选中listbox某一个值的时候,怎么让treeview展开,并且也选中跟这个值相同的节点? 用n.Expand();或n.ExpandAll(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 选中节点可以用n.TreeView.SelectedNode = n.LastNode; 是winform编程,不是要展开所有节点,而是要展开跟listbox选中的值相同的节点啊 TreeNodeCollection nodes = treeView1.Nodes; foreach (TreeNode n in nodes) {}这样只能遍历第一级节点,怎么样能遍历所有节点呢? n.Selected = true;if (n.Parent != null){ this.CollapseTree(n.Parent);}其中CollapseTree方法如下:void ExpandTree(TreeNode ParentNode){if(!ParentNode.IsExpanded) ParentNode.Expand();if(ParentNode.Parent != null) ExpandTree(ParentNode.Parent) ;}没有经过调试,你可以试试。 现在问题是怎么遍历所有的节点,然后找到跟listbox值相同的节点,在做相应的操作。 遍历知道了,用递归法。现在的问题是不能选中和listbox相同的节点。代码如下private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) { TreeNodeCollection nodes = treeView1.Nodes; foreach (TreeNode n in nodes) { Recursive(n); } } private void Recursive(TreeNode n) { foreach (TreeNode m in n.Nodes) { if(listBox1.Text.Trim()==m.Text) { if(null!=m.FirstNode) { m.TreeView.SelectedNode = m.FirstNode; } else { m.TreeView.SelectedNode = m.Parent; m.Parent.Expand(); } } Recursive(m); } }只能选中子节点(如果有子节点)或者父节点(如果没有子节点)。还有怎么让选中的节点高亮度显示? 用n.TreeView.SelectedNode,再加条件可以吧。 一个可能不是很好但肯定能解决问题的方法是遍历树,找到值相等的节点,然后调用该节点的Expand方法展开之 关键是怎么样把当前节点赋给n.TreeView.SelectedNode属性呢? 求帮助 C#VS2008打包安装程序问题 已知圆心坐标,半径,求圆外切正方形与圆相交四个点坐标 请教一个问题,顺便帮忙修改一点代码 第一次押宝就中,散分,顺便问个小问题(避免移到非技术) 大家都会遇到的问题,不知道你们怎么解决的 VS2005+SQL2005的一个问题 怎么忽略 webBrowser 中的js 出错窗口 XML循环提取的问题 请问我要这样弄才可以双击 TREEVIEW 视图中的文件就可以运行呢? 为什么只编释一个空窗体后运行都占用10M多的内存,有不有选项可以设置? 一个与类相关的问题! 谁能把这段程序改成C/C++的??????
n.TreeView.SelectedNode = n.LastNode;
foreach (TreeNode n in nodes)
{
}
这样只能遍历第一级节点,怎么样能遍历所有节点呢?
if (n.Parent != null)
{
this.CollapseTree(n.Parent);
}其中CollapseTree方法如下:void ExpandTree(TreeNode ParentNode)
{
if(!ParentNode.IsExpanded)
ParentNode.Expand();
if(ParentNode.Parent != null)
ExpandTree(ParentNode.Parent) ;
}没有经过调试,你可以试试。
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
TreeNodeCollection nodes = treeView1.Nodes;
foreach (TreeNode n in nodes)
{
Recursive(n);
} }
private void Recursive(TreeNode n)
{
foreach (TreeNode m in n.Nodes)
{
if(listBox1.Text.Trim()==m.Text)
{
if(null!=m.FirstNode)
{
m.TreeView.SelectedNode = m.FirstNode;
}
else
{
m.TreeView.SelectedNode = m.Parent;
m.Parent.Expand();
}
}
Recursive(m);
}
}
只能选中子节点(如果有子节点)或者父节点(如果没有子节点)。
还有怎么让选中的节点高亮度显示?