各位大哥大姐,请问c#怎么winform中实现左边显示treeview,右边显示点击treeview节点后的显示的datagridview?

Jasonyo 2017-09-27 04:19:31

类似下面这样:


小白一个,求指教啊
...全文
700 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bolt1st 2017-11-21
  • 打赏
  • 举报
回复
你好,我也有一样的问题,能加你个好友学习一下吗?
Jasonyo 2017-09-28
  • 打赏
  • 举报
回复
if(e.Action == TreeViewAction.ByMouse) if (e.Node.Parent == null && e.Node.Index == 0)//表示当前节点没有父节点,并且在兄弟节点中排行第1(由零开始索引)。 { da1.Fill(ds, "table"); da2.Fill(ds, "table"); } if (e.Node.Parent == null && e.Node.Index == 1)//表示当前节点没有父节点,并且在兄弟节点中排行第2(由零开始索引)。 { da3.Fill(ds, "table"); da4.Fill(ds, "table"); da5.Fill(ds, "table"); } if (e.Node.Parent != null && e.Node.Parent.Index == 0)//当前选中的节点有父节点,并且该父节点在相同级别的父节点中排行第一。 { if(e.Node.Index == 0)//当前选中节点在所有的兄弟节点中排第一; da1.Fill(ds, "table"); if(e.Node.Index == 1) da2.Fill(ds, "table");//当前选中节点在所有的兄弟节点中排第二; } if (e.Node.Parent != null && e.Node.Parent.Index == 1)//当前选中的节点有父节点,并且该父节点在相同级别的父节点中排行第一。 { if(e.Node.Index == 0)//当前选中节点在所有的兄弟节点中排第一; da3.Fill(ds, "table"); if(e.Node.Index == 1) da4.Fill(ds, "table");//当前选中节点在所有的兄弟节点中排第二; if(e.Node.Index == 2) da5.Fill(ds, "table");//当前选中节点在所有的兄弟节点中排第三; } this.dataGridView1.DataSource = ds.Tables["table"].DefaultView; 搞定了,谢谢大家~~
whzh719 2017-09-28
  • 打赏
  • 举报
回复
treeview中有选中事件,在选中事件里重新绑定datagridvie 数据
Jasonyo 2017-09-28
  • 打赏
  • 举报
回复
引用 11 楼 ou108 的回复:
[quote=引用 4 楼 ou108 的回复:] 这个问题要回答的太多了: 1 先绑定treeview数据,从数据库中读也好,自己手动添加也行。 2 数据绑定后,利用AfterSelect事件 从数据库中拿自己想要的数据放在datatable中。 3 将拿出来的数据绑定到datagridview中, cdgv_MeasureDataView.DataSource = dt。
请问数据库里面有5张表,我把他们分别放在5个datatable里,最后绑定datagridview的时候是不是也要绑定5个datagridview啊,,[/quote] 只能绑定一个视图, 5个表中你全拿的话,只以绑定一个表, 如果楼主想要的数据是5个表中综合起来的数据,建议你弄个视图,然后从视图中查数据放到一个表中,再绑定。[/quote] 因为5个表的列名是一样的,所以想如果能共用一个视图就好了,所以现在我需要把五个表综合起来放在一个视图里,然后通过查询实现绑定么,具体的能不能指点下,感谢感谢
雨何方 2017-09-28
  • 打赏
  • 举报
回复
在数据库初建表时,在这五张表里都设置一个列,是唯一的,这样一来,到时访问就是换个表名就是了. 如:现在有数据表:部门表,人事表,简历表,学历表. 那在这些表里,都设置二个ID,部门ID(DID),人员ID(UID) 在程序里,只要将部门与人事表绑到TreeView树型控件上,然后分别以UID去访问不同的表,并同时加载到同一个datagridView表格控件中即可。 在这个基础上,你也可以考滤将些表在SQL数据里关连起来,建立一张视图也是可以的。
ou108 2017-09-28
  • 打赏
  • 举报
回复
引用 4 楼 ou108 的回复:
这个问题要回答的太多了: 1 先绑定treeview数据,从数据库中读也好,自己手动添加也行。 2 数据绑定后,利用AfterSelect事件 从数据库中拿自己想要的数据放在datatable中。 3 将拿出来的数据绑定到datagridview中, cdgv_MeasureDataView.DataSource = dt。
请问数据库里面有5张表,我把他们分别放在5个datatable里,最后绑定datagridview的时候是不是也要绑定5个datagridview啊,,[/quote] 只能绑定一个视图, 5个表中你全拿的话,只以绑定一个表, 如果楼主想要的数据是5个表中综合起来的数据,建议你弄个视图,然后从视图中查数据放到一个表中,再绑定。
ou108 2017-09-28
  • 打赏
  • 举报
回复
只能绑定一个视图, 5个表中你全拿的话,只以绑定一个表, 如果楼主想要的数据是5个表中综合起来的数据,建议你弄个视图,然后从视图中查数据放到一个表中,再绑定。
Jasonyo 2017-09-28
  • 打赏
  • 举报
回复
引用 7 楼 MORANS 的回复:
如果是从SQL数据库里加载数据到树型控件treeview中的。那么在定义treeview的各个节点时,可以用表里的ID列名与ID列的值组合给各个节点命名。 然后,在treeview的AfterSelect事件中: 查询条件可以设定为: 比如说,ID列名为UID,ID值为1. string _ID=e.Node.Text.Substring(3); SELECT * FROM 表名 WHERE ID列名=_ID this.DataGridView.DataSource=查询的结果。 这样就可以了。
引用 4 楼 ou108 的回复:
这个问题要回答的太多了: 1 先绑定treeview数据,从数据库中读也好,自己手动添加也行。 2 数据绑定后,利用AfterSelect事件 从数据库中拿自己想要的数据放在datatable中。 3 将拿出来的数据绑定到datagridview中, cdgv_MeasureDataView.DataSource = dt。
请问数据库里面有5张表,我把他们分别放在5个datatable里,最后绑定datagridview的时候是不是也要绑定5个datagridview啊,,
xdashewan 2017-09-27
  • 打赏
  • 举报
回复
引用 5 楼 Jsaonyo 的回复:
土木狗一枚没啥基础 [泪奔],这段时间老是让做的软件,就赶鸭子上架了,第3条之前在论坛上有相似的代码,第1、2条大神可不可以推荐两个例子学习一下~~
1参考https://msdn.microsoft.com/zh-cn/library/system.windows.forms.treeview.nodemouseclick(v=vs.110).aspx 2参考http://blog.csdn.net/zhanghaoliangdehao/article/details/7372550
雨何方 2017-09-27
  • 打赏
  • 举报
回复
如果是从SQL数据库里加载数据到树型控件treeview中的。那么在定义treeview的各个节点时,可以用表里的ID列名与ID列的值组合给各个节点命名。 然后,在treeview的AfterSelect事件中: 查询条件可以设定为: 比如说,ID列名为UID,ID值为1. string _ID=e.Node.Text.Substring(3); SELECT * FROM 表名 WHERE ID列名=_ID this.DataGridView.DataSource=查询的结果。 这样就可以了。
Jasonyo 2017-09-27
  • 打赏
  • 举报
回复
引用 4 楼 ou108 的回复:
这个问题要回答的太多了: 1 先绑定treeview数据,从数据库中读也好,自己手动添加也行。 2 数据绑定后,利用AfterSelect事件 从数据库中拿自己想要的数据放在datatable中。 3 将拿出来的数据绑定到datagridview中, cdgv_MeasureDataView.DataSource = dt。
恩恩我照着试一下,蟹蟹
Jasonyo 2017-09-27
  • 打赏
  • 举报
回复
引用 3 楼 xdashewan 的回复:
你现实以下比较基础的逻辑 1.获得treeview选择的节点数据 2.从数据库指定的table中抽取数据 3.把数据库显示到datagridview中 都算是c#基础知识了,写完了还有疑问再来提
土木狗一枚没啥基础 [泪奔],这段时间老是让做的软件,就赶鸭子上架了,第3条之前在论坛上有相似的代码,第1、2条大神可不可以推荐两个例子学习一下~~
ou108 2017-09-27
  • 打赏
  • 举报
回复
这个问题要回答的太多了: 1 先绑定treeview数据,从数据库中读也好,自己手动添加也行。 2 数据绑定后,利用AfterSelect事件 从数据库中拿自己想要的数据放在datatable中。 3 将拿出来的数据绑定到datagridview中, cdgv_MeasureDataView.DataSource = dt。
xdashewan 2017-09-27
  • 打赏
  • 举报
回复
你现实以下比较基础的逻辑 1.获得treeview选择的节点数据 2.从数据库指定的table中抽取数据 3.把数据库显示到datagridview中 都算是c#基础知识了,写完了还有疑问再来提
Jasonyo 2017-09-27
  • 打赏
  • 举报
回复
点击左侧子节点,然后调用数据库中的表(每个子节点对应数据库中的一个table)显示到datagridview中,表述的不专业,不知道是不是说清楚了
exception92 2017-09-27
  • 打赏
  • 举报
回复
查询treeview的AfterSelect事件如何使用。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧