C#如何让dataGridView实现树形分组结构

yxm987528 2014-08-15 11:33:34
需要做一个树形控件和dataGridVie相结合的控件,在主界面上显示,如图
...全文
11169 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
MR_HJ 2016-08-16
  • 打赏
  • 举报
回复
楼主求分享!
2009菜鸟 2015-08-21
  • 打赏
  • 举报
回复
引用 8 楼 yxm987528 的回复:
问题已解决,找到一个TreeDataGridView.dll。
分享下么
chen_whutgis 2015-04-10
  • 打赏
  • 举报
回复
没有开源啊。
Allan_923 2015-01-02
  • 打赏
  • 举报
回复
引用 8 楼 yxm987528 的回复:
问题已解决,找到一个TreeDataGridView.dll。
引用 8 楼 yxm987528 的回复:
问题已解决,找到一个TreeDataGridView.dll。
你好你是在哪找到的呢?
yxm987528 2014-09-16
  • 打赏
  • 举报
回复
问题已解决,找到一个TreeDataGridView.dll。
nii_ma2859103466 2014-08-18
  • 打赏
  • 举报
回复
把DataGridView中数据放到树形控件TreeView中显示 //窗体加载时,显示原有的数据 private void Form1_Load(object sender,EventArgs e) { string P_Connection = string.Format(//创建数据库连接字符串 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;User Id=Admin"); OleDbDataAdapter P_OLeDbDataAdapter = new OleDbDataAdapter( "select au_id as 用户编号,au_lname as 用户名,phone as 联系电话 from authors", P_Connection); DataSet ds = new DataSet(); P_OLeDbDataAdapter.Fill(ds,"UserInfo"); dataGridView1.DataSource = ds.Tables["UserInfo"].DefaultView; TreeNode treeNode = new TreeNode("用户信息",0,0); treeView1.Nodes.Add(treeNode); //默认情况下追加节点 追加节点ToolStripMenuItem.Checked = true; } //DataGridView的按下鼠标事件 private void dataGridView1_MouseDown(object sender,MouseEventArgs e) { if(dataGridView1.SelectedCells.Count != 0) { //定义一个二维数组,数组中的每一行代表DataGridView中的一条记录 recordInfo = new string[dataGridView1.Rows.Count,dataGridView1.Columns.Count]; //当按下鼠标左键时,首先获取选定行,记录每一行对应的信息 for(int i = 0; i < dataGridView1.Rows.Count; i++) { if(dataGridView1.Rows[i].Selected) { for(int j = 0; j < dataGridView1.Columns.Count; j++) { recordInfo[i,j] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } } } } } //当鼠标进入TreeView控件时,触发的操作 private void treeView1_MouseEnter(object sender,EventArgs e) { if(追加节点ToolStripMenuItem.Checked == true) { #region 代码区域 if(recordInfo != null && recordInfo.Length != 0) { //用双重for循环遍历数组recordInfo中的内容 for(int i = 0; i < recordInfo.GetLength(0); i++) { for(int j = 0; j < recordInfo.GetLength(1); j++) { //判断数组中的值是否为空 if(recordInfo[i,j] != null) { if(j == 0) { //向TreeView中加入节点 TreeNode Node1 = new TreeNode(recordInfo[i,j].ToString()); treeView1.SelectedNode.Nodes.Add(Node1); treeView1.SelectedNode = Node1; } else { //添加子级节点下的子节点 TreeNode Node2 = new TreeNode(recordInfo[i,j].ToString()); treeView1.SelectedNode.Nodes.Add(Node2); } } } treeView1.SelectedNode = treeView1.Nodes[0]; treeView1.ExpandAll(); } //清空recordInfo中的记录 for(int m = 0; m < recordInfo.GetLength(0); m++) { for(int n = 0; n < recordInfo.GetLength(1); n++) { recordInfo[m,n] = null; } } }//CodeGo.net/ #endregion } if(清空内容ToolStripMenuItem.Checked == true) { if(treeView1.SelectedNode.Nodes.Count != 0) { treeView1.SelectedNode.Remove(); TreeNode treeNode = new TreeNode("用户信息",0,0); treeView1.Nodes.Add(treeNode); treeView1.SelectedNode = treeNode; #region 代码区域 if(recordInfo != null && recordInfo.Length != 0) { //用双重for循环遍历数组recordInfo中的内容 for(int i = 0; i < recordInfo.GetLength(0); i++) { for(int j = 0; j < recordInfo.GetLength(1); j++) { //判断数组中的值是否为空 if(recordInfo[i,j] != null) { if(j == 0) { //向TreeView中加入节点 TreeNode Node1 = new TreeNode(recordInfo[i,j].ToString()); treeView1.SelectedNode.Nodes.Add(Node1); treeView1.SelectedNode = Node1; } else { //添加子级节点下的子节点 TreeNode Node2 = new TreeNode(recordInfo[i,j].ToString()); treeView1.SelectedNode.Nodes.Add(Node2); } } } treeView1.SelectedNode = treeView1.Nodes[0]; treeView1.ExpandAll(); } //清空recordInfo中的记录 for(int m = 0; m < recordInfo.GetLength(0); m++) { for(int n = 0; n < recordInfo.GetLength(1); n++) { recordInfo[m,n] = null; } } } #endregion 追加节点ToolStripMenuItem.Checked = true; 清空内容ToolStripMenuItem.Checked = false; } } }
lanweiqiang 2014-08-18
  • 打赏
  • 举报
回复
呵呵,好熟悉啊,是电力终端服务主站吧?
yxm987528 2014-08-15
  • 打赏
  • 举报
回复
这段我看过,好像是ASP的,在C#上好像实现不了
yxm987528 2014-08-15
  • 打赏
  • 举报
回复
这段我看过,好像是ASP的,在C#上好像实现不了
bdmh 2014-08-15
  • 打赏
  • 举报
回复
wuyq11 2014-08-15
  • 打赏
  • 举报
回复

8,833

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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