- PR -

WEBフォームのTREEにC#でNODEを追加したい。

1
投稿者投稿内容
黒猫
会議室デビュー日: 2002/05/14
投稿数: 7
投稿日時: 2002-06-05 20:30
まことに初歩的で申し訳ありませんが。

環境は、XP+VS.NET+WEBCONTROL.1.0(英語版)を利用しています。

フォームのnodesプロパティのプロパティページとおなじことを、ツリーのルートからすべて、c#からデータを自分で階層をきめて初期化したいのですが。力不足のためどうやっていいかわからずこまっています。

まず、webフォームのTreeview.Node.Addとしたとき。引数にTreeNodeが要求されたので。TreeNodeの中身がツリー構造の中身になるとおもい。これにデータを入れる方法を探したとき「TreeNode.Node.Addがそれか?」とおもい。調べてみたらにTreeNode.Node.AddもTreeNodeを入れる書式になってます。複数のTREENODECOLLECTIONをつくったばあいこれをまとめて追加するのにつかうのだろうおもったので。この構文そのものには納得したのですが。最初のTreeNodeをつくるものではないらしいので、現在試行錯誤中ということろまできました。

ちなみに、構造がちがうのでだめとおもいつつ、WINDOWSフォームのようにTreeView1.Node.Add(new TreeNode(string));とか。は、コンストラクタが違うためコンパイラではじかれ、TreeNode.Text=string;のような、わるあがきもしてみたのですが。やはり「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と実行時にエラーでとまってしまいました。

この場合どのようにして。データを初期化すればよいかご存知のかたがいればご教示ください。



[ メッセージ編集済み 編集者: 黒猫 編集日時 2002-06-05 20:50 ]

[ メッセージ編集済み 編集者: 黒猫 編集日時 2002-06-05 20:56 ]
いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2002-06-10 14:30
普通にTreeNodeをnew で作成したオブジェクトを追加すればOKです。

ルート直結!
Microsoft.Web.UI.WebControls.TreeNode node =
new Microsoft.Web.UI.WebControls.TreeNode();
node.Text = "新しいノード";
TreeView1.Nodes.Add(node);

ノードに子ノード追加
 Micosoft.Web.UI.WebControls.TreeNode node =
new Microsoft.Web.UI.WebControls.TreeNode();
node.Text = "ルート直結最初のノードの子ノード";
TreeView1.Nodes[0].Nodes.Add(node);

黒猫
会議室デビュー日: 2002/05/14
投稿数: 7
投稿日時: 2002-06-12 17:18
いのつちさん、ありがとうこざいました。

こちらでも、ノードの追加に成功しました。
いのつちさんには、いつも貴重なヒントをいただき感謝しております。
本当にありがとうございましたm(_ _)m
1

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