C# TreeView, событие при выборе дочернего узла

У меня есть вопрос относительно TreeViews и их узлов в C#.

Чем я сейчас и пытаюсь заниматься. У меня есть TreeView и рядом с ним TableLayoutPanel. Когда я нажимаю узлы, я хочу вызвать определенный метод и отобразить данные в TableLayoutPanel. Отображение данных работает нормально, но моя проблема в том, что я точно не знаю, как определить, какой Node/ChildNode был выбран.

У меня есть TreeView, который выглядит так

Root1
     R1Child1
     R1Child2
Root2
     R2Child1
     R2Child2
Root3
     R3Child1
     R3Child2

В настоящее время я обрабатываю это с помощью метода AfterSelect и просто проверяю выбранный узел на наличие текста.

private void treeHardware_AfterSelect(object sender, TreeViewEventArgs e)
{

        if (e.Node.Text == SysInfo.CPU.Name)
        {
            deleteRows();
            initFixedRows();
            updateTableCPU();
        }
        else if (e.Node.Text == ramNameIdent)
        {
            deleteRows();
            initFixedRows();
            updateTableRAM(e.Node.Index);
        }
        else if (e.Node.Text == "Memory")
        {
            deleteRows();
            initFixedRows();
            loadRAMDetails(0);
            loadRAMOverview();
        }
        else if( e.Node.Text == "Mainboard")
        {
            deleteRows();
            initFixedRows();
            updateTableMainboard();
        }
        else
        {
            Console.WriteLine("ERROR");
        }
}

По моему мнению, это очень непрактичный способ проверить, какой узел был нажат, потому что он просто проверяет строки, и это не очень эффективно.

Следующая проблема для узла памяти. Я показываю все установленные физические воспоминания и добавляю каждое из них в качестве дочернего узла. Теперь, когда я нажимаю на один из них, он должен отображать данные выбранной памяти в моей панели TableLayoutPanel. Но он всегда просто показывает «последний».

Надеюсь, вы понимаете, что я имею в виду... Если нет, просто запросите дополнительную информацию :-)

Привет, Консти


person Constantin M    schedule 29.09.2016    source источник
comment
почему вы не используете свойство тега? поместите идентификатор в свойство тега, уникальное для каждого узла. Что касается следующей проблемы, я не понял   -  person    schedule 29.09.2016
comment
@Shoushou, спасибо, это решит мою проблему! Я работаю над этим спасибо!!!   -  person Constantin M    schedule 29.09.2016
comment
очень хороший ! Я поставлю это как ответ, поэтому, пожалуйста, примите его! Наслаждайтесь программированием!   -  person    schedule 29.09.2016


Ответы (1)


Используйте свойство тега, поместите идентификатор в свойство тега, уникальное для каждого узла.

person Community    schedule 29.09.2016