请教C#中关于树的问题(50分)

  • 主题发起人 主题发起人 gyang
  • 开始时间 开始时间
G

gyang

Unregistered / Unconfirmed
GUEST, unregistred user!
看了很久的C#帮助,也没有找到以下几个答案,所以请教各位
1.在C#中如何获得当前树节点的等级(Level)
Delphi中是这样: Node.Level
2.在C#怎样判断一个节点是否为空(nil)
Delphi中是这样: if Node = nil then

3.如何获得下一级子节点
Delphi中是这样: Node = Node.GetFirstChild
4.C#中没有指针,能不能实现Delphi中的这个功能,如果可以,代码应怎样写?
type
PNodeData = ^FNodeData;
TNodeData = record
ID: string;
Index: Integer;
end;
...
private
FNodeData: PNodeData;
end;
...
//添加数据
procedure AddTreeNode;
begin
New(FNodeData);
FNodeData.ID := '1';
FNodeData.Index := 1;
TreeView1.Items.AddObject(nil, 'SSSSS', FNodeData);
...
end;
//读取数据
PNodeData(Node.Data)^.ID;
PNodeData(Node.Data)^.Index;
 
不会没有这些属性吧,这可是最基本的属性呀!!!
 
2,3我已解决
2. if (Node != null)
3. if (ANode.Nodes.Count > 0) //有没有标准点的方法??
return ANode.Nodes[0];
其它怎么解决了?
另:新的问题
如何使一个已知节点为选中
:Delphi的为Node.Selected := True
C#怎么办到??? 
 
对于你的新问题:
treeView1.SelectedNode=node1;
对于第1个问题,等级值可以通过计算节点的FullPath属性中的"/"个数来得到。
 
用FullPath方法不好;
还是用这个好点
int vLevel = 0;
while (Node.Parent != null)
vLevel++;
 
接受答案了.
 
后退
顶部