社区
C++ Builder
帖子详情
关于TreeView的问题(难题)
KOB325
2004-05-04 11:43:52
现有一张表如下:
VillageName RusticName Gangname
东升 白衣 1
东升 白衣 2
东升 白衣 3
东升 石佛 1
东升 石佛 2
东升 石佛 3
东升 石佛 4
黄龙溪 菜坝 1
黄龙溪 菜坝 2
黄龙溪 菜坝 3
黄龙溪 毡帽 1
黄龙溪 毡帽 2
黄龙溪 毡帽 3
VillageName代表乡RusticName代表村Gangname代表社,如何生成TreeView。
乡中包含村,村中包含社。
...全文
139
7
打赏
收藏
关于TreeView的问题(难题)
现有一张表如下: VillageName RusticName Gangname 东升 白衣 1 东升 白衣 2 东升 白衣 3 东升 石佛 1 东升 石佛 2 东升 石佛 3 东升 石佛 4 黄龙溪 菜坝 1 黄龙溪 菜坝 2 黄龙溪 菜坝 3 黄龙溪 毡帽 1 黄龙溪 毡帽 2 黄龙溪 毡帽 3 VillageName代表乡RusticName代表村Gangname代表社,如何生成TreeView。 乡中包含村,村中包含社。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
真如实观
2004-05-05
打赏
举报
回复
你先定义一个字段:parrentID smallint not null。
如:MyID parrentID child_name
1 1 xxx
2 1 //注意了没有?xxx
3 3 xxx
4 3 xxx
5 3 xxx
6 6 xxx
7 6 xxx
然后~~~~
rNode=Tree->Items->Add(TreeView1->Selected,"TTreeView测试");//根节点
rNode->ImageIndex=0;
rNode->SelectedIndex=0;
while(!TreeViewQuery->Eof)
{
sDate=dm->TreeViewQuery->FieldByName("mydate")->AsDateTime.FormatString("yyyy-mm-dd");//TreeView的Caption是日期,形如:2004-05-05
nid=dm->TreeViewQuery->FieldByName("MyID")->AsInteger;
nparrent=dm->TreeViewQuery->FieldByName("parrentid")->AsInteger;
nchildname=dm->TreeViewQuery->FieldByName("child_name")->AsInteger;//子节点
if(nparrent==nid)
{
cNode=Tree->Items->AddChild(rNode,sDate);
mNode=Tree->Items->AddChild(cNode,IntToStr(nchildname));
}
if(nparrent!=nid)
{
mNode=Tree->Items->AddChild(cNode,IntToStr(nchildname));
}
cNode->ImageIndex=1;
cNode->SelectedIndex=1;
mNode->ImageIndex=2;
mNode->SelectedIndex=2;
TreeViewQuery->Next();
}
fengxia0078
2004-05-05
打赏
举报
回复
顺带问一下::
我加了两级节点后,想在rootnode.chilrennode下在加,怎么写?
TTreeNode *Node
TreeView1->Items->Add(NULL, "rootnode");
Node = TreeViewXZLB->Items->Item[0];
TreeView1->Items->Add(Node, "childrennode");
...??
diligent_boy
2004-05-05
打赏
举报
回复
upup!!
关键还是获取信息呀!
别的都能在help内找到
ekin7913046
2004-05-05
打赏
举报
回复
我把答案给你发到邮箱了。给分吧!
robbyzi
2004-05-04
打赏
举报
回复
这里只要嵌套三重循环,来生成树就可以了。
至于如何生成树结点。大把书有介绍了。呵
xugeng
2004-05-04
打赏
举报
回复
你可以参考下面的建树过程
//建类别树
TTreeNode *Node[6]; //最多可以有6级
TreeViewXZLB->Items->Clear();
//加一个根节点
TreeViewXZLB->Items->Add(NULL, "类别");
Node[0] = TreeViewXZLB->Items->Item[0];
//设展开图像
Node[0]->ImageIndex=0;
Node[0]->SelectedIndex =1;
//定义变量
int CurrentItem=0,
LastNode=0,
CurrentNode=0,
XZLBBHLen;
//从表中取记录,插入树
DM->ADOTableXZLB->First();
while(!(DM->ADOTableXZLB->Eof ))
{
XZLBBH=DM-> ADOTableXZLB->FieldByName("类别编号")->AsString.Trim();
XZLB=DM->ADOTableXZLB->FieldByName("类别")->AsString.Trim();
XZLBBHLen =XZLBBH.Length() ;
CurrentItem=CurrentItem+1;
CurrentNode=XZLBBHLen/2; //注意这里除2是为了确定树节点级别,具体说明见后
TreeViewXZLB->Items->AddChild(Node[CurrentNode-1],XZLB);
Node[CurrentNode] = TreeViewXZLB->Items->Item[CurrentItem];
// 设展开图像
Node[CurrentNode]->ImageIndex=0;
Node[CurrentNode]->SelectedIndex =1;
if (CurrentNode!=LastNode)
{
LastNode=CurrentNode;
}
DM-> ADOTableXZLB->Next() ;
}
free1688
2004-05-04
打赏
举报
回复
头坑,我来顶
TreeView
的RenderControl的
问题
探讨了在ASP.NET中使用
TreeView
控件时遇到的
问题
,特别是在RenderControl方法输出的HTML与实际页面源代码的差异,及如何通过正则表达式处理页面源码来解决这一
难题
。
WinForm里保存
TreeView
状态
博客围绕BugTiger中
TreeView
数据更新
问题
展开。直接操作
TreeView
更新Nodes较麻烦,因数据从服务器以DataSet形式获取,存在TreeNode与DataSet数据对应
难题
。最终选择清空Nodes后重新添加,为保持原状态,使用Hashtable保存节点状态,并给出了相关代码实现。
TreeView
树型结构
问题
-2
本文探讨了
TreeView
控件在实际应用中的
问题
,特别是在数据增删改时遇到的挑战,并提供了一个实用的递归方法来初始化树形结构,有效解决了编号管理
难题
。
TreeView
爱恨之间
本文探讨了ASP.NET 2.0中
TreeView
控件的局限性,特别是缺乏客户端交互支持的
问题
,并分享了一个用于解决中文URL编码
难题
的自定义escape函数。
android listview 不重绘,javafx listview和
treeview
控件未正确重绘
在JavaFX中遇到一个
难题
,当尝试从ListView和
TreeView
中删除元素时,尽管数据源已更新,但视图并未刷新。尽管无法再选择已删除的项目,但它们在界面上仍可见。
问题
在折叠和未折叠的状态下都存在。
问题
可能与自定义单元工厂有关,需要找到解决方案以确保视图正确更新。
C++ Builder
13,872
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章