我已加载树状视图。我想Traverse treeview节点并扩展&选择一个节点。展开工作正常。但是选择一个节点不起作用。
private void Traverse(TreeNodeCollection nodes, string findtext)
{
foreach (TreeNode node in nodes)
{
if (node.Text.ToString().Trim() == findtext)
{
node.Expand();
node.TreeView.SelectedNode = node.NextNode;
//tvwStructureTree.SelectedNode = this.tvwStructureTree.Nodes[node.Index];
//Select a node in Treeview tvwStructureTree But not working
tvwStructureTree.SelectedNode = node;
node.TreeView.Focus();
}
Traverse(node.Nodes, findtext);
}
}
它在Windows应用程序中。
答案 0 :(得分:5)
不太确定你的问题是什么。 TreeView.SelectedNode Property是正确的属性。
设置此属性时,指定的节点将滚动到视图中 并扩展任何父节点,以便指定的节点 可见。
当父节点或所选节点的任何祖先节点是 以编程方式或通过用户操作折叠 折叠节点成为选定节点。
确保node.TreeView
是正确的TreeView实例。
node.TreeView.SelectedNode = node.NextNode;
TreeView.HideSelection Property是另一个可能对您有用的属性。
当此属性设置为false时,TreeView中的所选节点 控件保持以与当前颜色不同的颜色突出显示 TreeView控件失去焦点时的选择颜色。您可以使用 此属性用于保存用户选择的项目时可见 用户单击表单上的不同控件或移动到 不同的窗口。
答案 1 :(得分:1)
我有一个类似的问题。我的表单的ctor被测试了要选择的节点。找到正确的节点不是问题,但是由于树控件没有焦点,因此树未显示选中的节点。只需在设置host = '192.168.1.90'
port = 50001
s = socket.socket()
s.connect((host, port))
Filename = 'prova3.txt'
s.send(Filename.encode('utf-8'))
s.shutdown(socket.SHUT_WR)
data = s.recv(1024).decode('utf-8')
print(data)
s.close()
host = '192.168.1.90'
port = 50001
s = socket.socket()
s.connect((host, port))
Filename = 'prova3.txt'
s.send('prova3.txt')
s.shutdown(socket.SHUT_WR)
data = s.recv(1024).decode('utf-8')
print(data)
s.close()
Form.ActiveControl = myTreecontrol;
答案 2 :(得分:0)
我测试了你自己的代码并且工作正常,都找到并选择了节点! 没有为我的treeview任何特定的属性设置! 顺便说一句,我正在使用.Net 3.5和VS 2008