- PR -

[vb.net] TreeView 子ノードに対応するコードを取出したい

1
投稿者投稿内容
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2007-12-03 20:17
お世話になります。
[OS] WindowsXP
[言語] VB 2005 sp1
にて開発しております。

TreeView 子ノードを選択したときに、対応するコードが欲しいのですが、
うまく説明できない(ダメダメですorz)ので、図にして説明します。

コード:
tableA             tableB

--------------- -------------------------
| Code | Name | | Code | SubCode | Name |
+------+------+ +------+---------+------+
| 01 | A01 | | 01 | 001 | a001 |
| 02 | A02 | | 01 | 002 | a002 |
--------------- | 01 | 003 | a003 |
| 02 | 004 | b001 |
| 02 | 005 | b002 |
-------------------------

tableA, tableB ともにレコード数はもっとあるものとします。
上記のテーブルを TreeView に表示します。

+--A01
| +-a001
| +-a002
| +-a003
+--B01
+-b001
+-b002


上記のように表示して、

"a002" を選択 -> SubCode=002 を取得。

ということがしたいのです。

実装の方法として、以下のような二次元配列を作成して、

array(0)() = {001, 002, 003}
array(1)() = {004, 005}

選択されたノードの Index を元にコードを拾ってやればいいのかなと
考えているのですが、この多次元配列の扱いがよくわかりません。
配列のサンプルコードをあちこち見て回ってるのですが、
動的な多次元配列の作り方がよくわからないのです。
どのようにしたらよろしいでしょうか。

あるいは、TreeView のプロパティを見落としているとか、
もっと簡単な方法があるでしょうか。

よろしくお願いいたします。

[ メッセージ編集済み 編集者: とある根性なし 編集日時 2007-12-03 20:20 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-12-03 20:53
引用:

とある根性なしさんの書き込み (2007-12-03 20:17) より:

あるいは、TreeView のプロパティを見落としているとか、
もっと簡単な方法があるでしょうか。


ヒント: FullPath

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2007-12-03 21:32
ご返信ありがとうございます!

FullPath プロパティですね。
>>1 で条件に上げていなかった点がありました。
tableA.Name & tableB.Name は重複する可能性があります。
検討してみましたが、上記理由により FullPath プロパティでは実現できないのではないかとおもいます。
せっかくのアドバイスなのですが、大変申し訳ありません。

しかし、FullPath プロパティを調べているうち、
TreeNode.Value プロパティの存在に気づきました・・・

何やってんだ俺


恥を撒き散らしながら解決いたしました。
じゃんぬねっとさん、閲覧してくださった方、ありがとうございました。
どなたかの役に立ちますように。。。
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2007-12-03 21:45
恥の上塗りをしにきました…

TreeNode.Value とするとコーディングエラーで、
「value は System.Windows.Forms.TreeView のメンバではありません。」
とのこと・・・
TreeNode.Value は System.Web.UI.WebContorls のメンバだそうです・・・

FullPath プロパティの件を含め、出直してきます
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-12-03 21:57
TreeView にノードを追加する時に、TreeNode.Tag プロパティにコード番号?を入れておけばいいんじゃないかと。
とある根性なし
ベテラン
会議室デビュー日: 2006/08/15
投稿数: 54
投稿日時: 2007-12-03 22:48
渋木宏明(ひどり)さん、ご返信ありがとうございます。

Tag プロパティを試してみました。
思い通りのことができることを確認しました。
ありがとうございます!
# MSDN のサンプルコードが解り辛い!

じゃんぬねっとさんからご提示いただいた FullPath については、
やはり重複する可能性があるため、見送ることにしました。
またお世話になるときにはよろしくお願いいたします。

ということで、解決とさせていただきます。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)