0

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 に表示されます。しかし、それは常に「最後の」ものだけを示しています。

私の言いたいことを理解していただければ幸いです...そうでない場合は、さらに情報を求めてください:-)

乾杯、 コンスティ

4

1 に答える 1

0

Tag プロパティを使用して、すべてのノードに固有の ID をタグ プロパティに入力します。

于 2016-09-29T13:34:52.343 に答える