2016-09-29 5 views
0

У меня есть вопрос относительно TreeViews и их узлов в C#.C# TreeView, событие, когда выбран дочерний элемент

Что я сейчас пытаюсь сделать. У меня есть 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"); 
     } 
} 

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

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

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

Приветствия, составившего

+0

Почему вы не используете свойство Tag? поместите идентификатор в свойство тега, которое является уникальным для каждого узла. Учитывая «Следующая проблема», я не понял –

+0

@Shoushou, спасибо, что решит мою проблему! Я работаю над этим спасибо !!! –

+0

очень хорошо! Я отведу его как ответ, поэтому, пожалуйста, примите это! Насладитесь программированием! –

ответ

0

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