Подтвердить что ты не робот

Как выбрать node дерева в программном виде в С#?

Используется treeview.SelectedNode для выбора дочернего элемента node. Как вызвать treeview.AfterSelect событие, когда программный node выбран?

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"); 
}
4b9b3361

Ответ 1

Извиняется за мой ранее смешанный ответ.

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

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


}

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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