0

と という名前の 2 つの ArrayList がProductListありItemListます。

ProductListは、2 つのstring[]配列を保持します。

string[0]    string[1]
---------   -----------
ProductID    ProductName
---------   -------------
  A001        Food
  B120        NotFood

ItemListは、3 つのstring[]配列を保持します。

string[0]   string[1]    string[2]
---------  -----------  -----------
ProductID    ItemID       ItemName
---------  -----------  -----------
  A001       X12332        Rice
  A001       X2133         Pepsi
  A001       X12450        Sardine
  B120       H1LKL         Pen
  B120       JLA122        Printer

これらのデータを TreeView に表示したいと考えています。

そこで、以下のようにコーディングを書きました。

for(int i = 0; i <ProductList.Count; i++) //loop for every item in ProductList
{
    TreeNode node = new TreeNode(((string[])ProductList[i])[1]); //create Parent node using ProductName
    TreeView.Nodes.Add(node); //add node into TreeView
    for(int j = 0; j < ItemList.Count; i++) //loop for every item in ItemList
    {
         if(((string[])ProductList[i])[0] == ((string[])ItemList[j])[0]) //Compare if ProdutID in ProductList same with ProductID in ItemList
         {
             node.Nodes.Add(((string[])ItemList[j])[2]); //Add ItemName from ItemList as Child node for current Parent Node
         }
    }
}

上記のコードを実行すると、次の結果が得られます。

+Food
 - Rice
 - Pepsi
 - Sardine
+NotFood
 - Pen
 - Printer

質問:ItemIDユーザーがノードを選択したとき にどのように取得できますか?

ありがとう。

4

2 に答える 2

0

プロパティを使用してTag、ノードに関する追加情報を格納できます(この場合、を保持することができますID)。後でノードをクリックすると、この情報を取得できるはずです。これがMSDNリンクです

于 2012-07-04T02:47:29.710 に答える
0

ここで、質問の要点を説明します。TreeNode には、Name と Text という 2 つの興味深いプロパティがあります。テキストはユーザーが読むものであり、名前は任意の名前です。おそらく、項目を TreeView に追加するときに、ItemID を TreeNode の名前として設定できます。

于 2012-07-04T02:54:31.557 に答える