如何在C#中以编程方式选择TreeView的节点?

问题描述 投票:0回答:7

使用

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"); 
}
c# winforms treeview
7个回答
56
投票

对我之前混淆的答案表示歉意。

具体操作方法如下:

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());
    }


}

5
投票
treeViewMain.SelectedNode = treeViewMain.Nodes.Find(searchNode, true)[0];

其中 searchNode 是节点的名称。 我个人使用组合“节点+面板”,其中节点名称是节点+,并且在选择的面板上也设置相同的标签。 通过此命令+按标签扫描面板,我通常可以使用树视图+面板完整菜单集。


0
投票

以编程方式选择节点后,调用

TreeView.OnAfterSelect()
受保护方法。


0
投票

yourNode.Toggle();
//在你的节点上使用该函数,它会切换它


0
投票

我现在也遇到了同样的问题,就是这样解决的。

TreeNodeCollection nodes = treeView1.Nodes;
foreach (TreeNode node in nodes)
{
    if(node.Text == "My Nodename")
    {
        treeView1.SelectedNode = node;
        treeView1.Select();
    }
}

希望对某人有帮助。


-1
投票
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

-3
投票
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();
}
© www.soinside.com 2019 - 2024. All rights reserved.