Как программно выбрать узел дерева в C #? - PullRequest
26 голосов
/ 17 января 2011

Используется 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"); 
}

Ответы [ 6 ]

39 голосов
/ 17 января 2011

Извините за мой ранее перепутанный ответ.

Вот как это сделать:

myTreeView.SelectedNode = myTreeNode;

(Update)

Я проверил код ниже, и он работает:

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


}
1 голос
/ 17 января 2011

Вызовите защищенный метод TreeView.OnAfterSelect() после программного выбора узла.

0 голосов
/ 30 апреля 2019
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
0 голосов
/ 19 декабря 2018
treeViewMain.SelectedNode = treeViewMain.Nodes.Find(searchNode, true)[0];

где searchNode - это имя узла.Я лично использую комбо «Панель узла +», где имя узла - «Узел +», и тот же тег также установлен на выбранной панели.С помощью этой команды + сканирование панелей по тегу я обычно могу работать с полным набором меню в виде дерева + панель.

0 голосов
/ 09 января 2014
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();
}
0 голосов
/ 12 марта 2013

yourNode.Toggle(); // использовать эту функцию на вашем узле, она переключает ее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...