首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于动态生成 treeview 有关问题 (最高分100)

2012-04-11 
关于动态生成 treeview 问题 (最高分100)我通过指定每个结点的父结点来动态生成一颗自顶向下的树,当结点的

关于动态生成 treeview 问题 (最高分100)
我通过指定每个结点的父结点来动态生成一颗自顶向下的树,当结点的编号是从0   开始然后按添加顺序递增时,可以通过运行,可删除某一结点,使原来的递增序列出现断点,从而出现错误,老是提示   Invalid   index   ,希望各位高手们帮帮忙!

我的代码:
procedure   TForm1.PopulateTreeView;
var
  parentnode,sonnode,treenode:TTreenode;
  i:Integer;
begin
  tvwFolders.Items.Add(self.tvwFolders.TopItem, '人员权限总栏: ');
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add( 'Select     *   from   T_树结点表   ');
  ADOQuery1.Prepared:=True;
  ADOQuery1.Open;
  ADOQuery1.First;
 
  while   not   ADOQuery1.Eof   do     //如果未到达最后一项,执行循环
    begin
        i   :=   ADOQuery1.FieldByName( '父结点编号 ').AsInteger;

  tvwFolders.Items[i].Selected:=True;     -------> 提示这行有问题!!!

    tvwFolders.Items.AddChild(tvwFolders.Selected,   ADOQuery1.fieldbyname( '基本权限 ').AsString)   ;

      ADOQuery1.Next;
    end;

end;

谢谢了!   希望得到你的可行的方法,先行谢过!     在线等.....


[解决办法]
i := ADOQuery1.FieldByName( '父结点编号 ').AsInteger;

tvwFolders.Items[i].Selected:=True; -------> 提示这行有问题!!!

你拿父节点的编号来做索引值,不对吧!
[解决办法]
最好用递归吧!

热点排行