使用
treeview.SelectedNode
选择子节点。当以编程方式选择节点时,如何调用 treeview.AfterSelect
事件?
this.treeView1.SelectedNode = this.treeView1.Nodes[0].Nodes[0].Nodes[0].Nodes[0];
if (this.treeView1.Nodes[0].Nodes[0].Nodes[0].Nodes[0].IsSelected)
{
MessageBox.Show("Node is selected");
}
对我之前混淆的答案表示歉意。
具体操作方法如下:
myTreeView.SelectedNode = myTreeNode;
我已经测试了下面的代码并且它有效:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
treeView1.Nodes.Add("1", "1");
treeView1.Nodes.Add("2", "2");
treeView1.Nodes[0].Nodes.Add("1-1", "1-1");
TreeNode treeNode = treeView1.Nodes[0].Nodes.Add("1-2", "1-3");
treeView1.SelectedNode = treeNode;
MessageBox.Show(treeNode.IsSelected.ToString());
}
}
treeViewMain.SelectedNode = treeViewMain.Nodes.Find(searchNode, true)[0];
其中 searchNode 是节点的名称。 我个人使用组合“节点+面板”,其中节点名称是节点+,并且在选择的面板上也设置相同的标签。 通过此命令+按标签扫描面板,我通常可以使用树视图+面板完整菜单集。
以编程方式选择节点后,调用
TreeView.OnAfterSelect()
受保护方法。
yourNode.Toggle();
//在你的节点上使用该函数,它会切换它
我现在也遇到了同样的问题,就是这样解决的。
TreeNodeCollection nodes = treeView1.Nodes;
foreach (TreeNode node in nodes)
{
if(node.Text == "My Nodename")
{
treeView1.SelectedNode = node;
treeView1.Select();
}
}
希望对某人有帮助。
TreeViewItem tempItem = new TreeViewItem();
TreeViewItem tempItem1 = new TreeViewItem();
tempItem = (TreeViewItem) treeView1.Items.GetItemAt(0); // Selecting the first of the top level nodes
tempItem1 = (TreeViewItem)tempItem.Items.GetItemAt(0); // Selecting the first child of the first first level node
SelectedCategoryHeaderString = tempItem.Header.ToString(); // gets the header for the first top level node
SelectedCategoryHeaderString = tempItem1.Header.ToString(); // gets the header for the first child node of the first top level node
tempItem.IsExpanded = true; // will expand the first node
private void btn_CollapseAllAndExpandFirstLevelUnderRoot(object sender, EventArgs e)
{
//this example collapses everything, then expands the first level under the root node.
tv_myTreeView.CollapseAll();
TreeNode tn = tv_myTreeView.Nodes[0];
tn.Expand();
}