TreeView好难 把 node 定义成全局变量;把下面的代码执行两次以上。 Node:=Treeview1.Items.AddChild(Node,'北京'); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 指定 node也可以直接写NODE := TREEVIEW.ITEMS.ADD(NIL,'北京') ;这样NODE 就是指北京这个节点 可能是 TreeView 还没有构造好吧。找一个晚一点执行的事件试试 多谢各位,我按照xiaonan的代码执行了一遍,成功了,但我不明白Nil是什么意思? 窗体初始化的时候,你的TreeView 还没有‘生’出来呢,当然不行了。 你必须在Form1.FormShow()中去加入:TreeView1.Items.AddChild(nil,'北京'); 也不一定。你可以在form1的oncreate事件里加treeview1.items.add('nil,'北京').nil就是空的意思了。一开始,treeview里为空了。 nil是指根节点,比如资源管理器的“桌面”treeview.create后treeview就创建了,只不过没有节点而已,并不是空的 在追加节点的时候,你要先判断树是否为空,要是没有节点的话,就要用addfirstchild方法来追加节点.或者先用addchild(nil,'boot node')创建一个根节点,就OK了! //在构造时还没有窗口句柄,还不能调用传递窗口句柄的方法//需要重载基类的CreateWnd,当它返回时表明所有元件创建完毕//否则会出现一个Control has no parent window的异常void __fastcall TMainForm::CreateWnd(){ TForm::CreateWnd(); ClassTree=new TTreeView(this); ClassTree->Parent=this;// 这儿当没重载基类的CreateWnd时不能引用ClassTree} 《程序員之打油詩》---看後有點傷感 如何以"进程名"取窗口句柄! 小票打印机的问题 用过SQLDirect的朋友请进! 小伍也当爹了,这世道变了... 资源文件中对话框整合技术求解 VTI_INF.HTML是什么东西? 程序员,你的性格决定了你的命运! 请求支援!如何判断鼠标是否在一个控件上面 关于TServerSocket控件的问题---100分 请教高人(40分相送)(东大阿尔派面试题) 如何实现两库字段内容修改?
也可以直接写
NODE := TREEVIEW.ITEMS.ADD(NIL,'北京') ;
这样NODE 就是指北京这个节点
找一个晚一点执行的事件试试
nil就是空的意思了。一开始,treeview里为空了。
treeview.create后treeview就创建了,只不过没有节点而已,并不是空的
//需要重载基类的CreateWnd,当它返回时表明所有元件创建完毕
//否则会出现一个Control has no parent window的异常
void __fastcall TMainForm::CreateWnd()
{
TForm::CreateWnd(); ClassTree=new TTreeView(this);
ClassTree->Parent=this;// 这儿当没重载基类的CreateWnd时不能引用ClassTree
}