以下测试代码,button1_Click实现查找定位节点的功能,并自动展开树到目标节点,但目标节点没有选中!
当把button1_Click事件的3行代码移到Form1_Load事件的结尾,则目标节点是选中状态的!
请问要使button1_Click查找后能选中节点,应如何改写? 谢谢! private void Form1_Load(object sender, EventArgs e)
{
// 建测试树
TreeNode node0 = new TreeNode();
node0.Text = "000"; TreeNode node11 = new TreeNode();
node11.Text = "aaa";
node0.Nodes.Add(node11); TreeNode node111 = new TreeNode();
node111.Text = "111";
node11.Nodes.Add(node111); TreeNode node112 = new TreeNode();
node112.Text = "112";
node11.Nodes.Add(node112); TreeNode node22 = new TreeNode();
node22.Text = "bbb";
node0.Nodes.Add(node22); TreeNode node221 = new TreeNode();
node221.Text = "221";
node22.Nodes.Add(node221); TreeNode node222 = new TreeNode();
node222.Text = "222";
node22.Nodes.Add(node222); TreeNode node223 = new TreeNode();
node223.Text = "223";
node22.Nodes.Add(node223); TreeNode node2231 = new TreeNode();
node2231.Text = "cxcai";
node223.Nodes.Add(node2231); TreeNode node33 = new TreeNode();
node33.Text = "ccc";
node0.Nodes.Add(node33); treeView1.Nodes.Add(node0);
} // 节点查找函数
private TreeNode FindNode(TreeNode tnParent, string strValue, string strType)
{
if (tnParent == null)
{ return null; } if (tnParent.Text.IndexOf(strValue) > -1)
{ return tnParent; } TreeNode tnRet = null;
foreach (TreeNode tn in tnParent.Nodes)
{
tnRet = FindNode(tn, strValue, strType);
if (tnRet != null)
{ break; }
}
return tnRet;
} private void button1_Click(object sender, EventArgs e)
{
TreeNode nodexxx = new TreeNode();
nodexxx = FindNode(treeView1.Nodes[0], "112", ""); treeView1.SelectedNode = nodexxx;
}
当把button1_Click事件的3行代码移到Form1_Load事件的结尾,则目标节点是选中状态的!
请问要使button1_Click查找后能选中节点,应如何改写? 谢谢! private void Form1_Load(object sender, EventArgs e)
{
// 建测试树
TreeNode node0 = new TreeNode();
node0.Text = "000"; TreeNode node11 = new TreeNode();
node11.Text = "aaa";
node0.Nodes.Add(node11); TreeNode node111 = new TreeNode();
node111.Text = "111";
node11.Nodes.Add(node111); TreeNode node112 = new TreeNode();
node112.Text = "112";
node11.Nodes.Add(node112); TreeNode node22 = new TreeNode();
node22.Text = "bbb";
node0.Nodes.Add(node22); TreeNode node221 = new TreeNode();
node221.Text = "221";
node22.Nodes.Add(node221); TreeNode node222 = new TreeNode();
node222.Text = "222";
node22.Nodes.Add(node222); TreeNode node223 = new TreeNode();
node223.Text = "223";
node22.Nodes.Add(node223); TreeNode node2231 = new TreeNode();
node2231.Text = "cxcai";
node223.Nodes.Add(node2231); TreeNode node33 = new TreeNode();
node33.Text = "ccc";
node0.Nodes.Add(node33); treeView1.Nodes.Add(node0);
} // 节点查找函数
private TreeNode FindNode(TreeNode tnParent, string strValue, string strType)
{
if (tnParent == null)
{ return null; } if (tnParent.Text.IndexOf(strValue) > -1)
{ return tnParent; } TreeNode tnRet = null;
foreach (TreeNode tn in tnParent.Nodes)
{
tnRet = FindNode(tn, strValue, strType);
if (tnRet != null)
{ break; }
}
return tnRet;
} private void button1_Click(object sender, EventArgs e)
{
TreeNode nodexxx = new TreeNode();
nodexxx = FindNode(treeView1.Nodes[0], "112", ""); treeView1.SelectedNode = nodexxx;
}
{
TreeNode nodexxx = new TreeNode();
nodexxx = FindNode(treeView1.Nodes[0], "112", "");
treeView1.SelectedNode = nodexxx;
treeView1.Focus();
}