2016-09-29 4 views
0

C#でTreeViewsとそのノードに関する質問があります。C#TreeView、子ノードが選択されたときのイベント

私が現在行っていること。私はTreeViewを持っていて、その隣にTableLayoutPanelがあります。ノードをクリックすると、特定のメソッドを呼び出して、データ をTableLayoutPanelに表示する必要があります。データを表示するには問題ありませんが、私の問題は、Node/ChildNodeが選択されているかどうかを正確に判断する方法がわからないことです。

私は現在、AfterSelect方法によりこれを処理し、テキストだけのために選択されたノードを確認し、この

Root1 
    R1Child1 
    R1Child2 
Root2 
    R2Child1 
    R2Child2 
Root3 
    R3Child1 
    R3Child2 

のように見えるツリービューを持っています。それだけで文字列をチェックし、それは非常に効果的イマイチので、私の意見では

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として追加します。ここでそれらの1つをクリックすると、選択したメモリのデータがTableLayoutPanelに表示されます。しかし、それは常に "最後の"ものを表示するだけです。

乾杯、 Consti

+0

なぜタグプロパティを使用しませんか?すべてのnode.regarding "次の問題"に固有のタグプロパティにIDを入れてください私は理解していません –

+0

@ Shoushou、私の問題を解決するだろうありがとう!私はそれに取り組んで感謝! –

+0

非常に良い!私は答えとしてそれを入れますので、それを受け入れてください!プログラミングをお楽しみください! –

答えて

0

は、タグのプロパティを使用してください:-)

あなたは私が何を意味するか理解してほしいの帽子に... ていない場合は、単にタグプロパティにIDを入れて、より多くの情報を求めますそれはすべてのノードで一意です

関連する問題