博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VS WinForm 中 父Datagridview嵌套子DatagridView
阅读量:4042 次
发布时间:2019-05-24

本文共 2090 字,大约阅读时间需要 6 分钟。

最近项目中应用到 在一个主Datagridview嵌套另一个子DatagridView.

效果如下:
在这里插入图片描述
在这里插入图片描述

实现的思路: 在父 Datagridview 点击的当前行的下方,显示子Datagridview.

//Step 1        private void Form_Load(object sender, EventArgs e)        {            //dgv : Master grid            //dataGridView1: Detail grid                        dgv.Controls.Add(dataGridView1);            dataGridView1.Visible = false;        }        //Step 2        // text the rowheader of char '+' for each row in datagrid event: RowsAdded        private void dgv_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)        {            dgv.Rows[e.RowIndex].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;            dgv.Rows[e.RowIndex].HeaderCell.Value = "+";        }        //Step 3        // set the position of the detail (sub) datagridview showing        private void dgv_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)        {                       dgv.CurrentRow.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleLeft;            dgv.CurrentRow.HeaderCell.Value = Convert.ToString(dgv.CurrentRow.HeaderCell.Value).Trim() == "+" ? "-" : "+"; // switch text the rowheader of char '+' or  '-'            int scrollRowIndex = dgv.FirstDisplayedScrollingRowIndex; // the first  row in the top of the  datagrid            if ((e.RowIndex - scrollRowIndex) > 10) // if the current row is the tenth row in the current page, set it to the top of the datagrid             {                dgv.FirstDisplayedScrollingRowIndex = e.RowIndex;            }                              //set the position of the detail (sub) datagridview"                    System.Drawing.Rectangle rect = dgv.GetCellDisplayRectangle(-1, e.RowIndex  , false);                    dataGridView1.Left = rect.Left;                    dataGridView1.Top = rect.Bottom ;                    dataGridView1.Width = dgv.Width ;                    dataGridView1.Height = dgv.Height;                    dataGridView1.Visible = Convert.ToString(dgv.CurrentRow.HeaderCell.Value).Trim() == "-" ? true : false; // show or hide the detail grid        }

转载地址:http://bimdi.baihongyu.com/

你可能感兴趣的文章
DIV/CSS:一个贴在左上角的标签
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
Vue组件
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
<转>文档视图指针互获
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
javascript传参字符串 与引号的嵌套调用
查看>>
swiper插件的的使用
查看>>
layui插件的使用
查看>>
JS牛客网编译环境的使用
查看>>
9、VUE面经
查看>>
关于进制转换的具体实现代码
查看>>
Golang 数据可视化利器 go-echarts ,实际使用
查看>>
mysql 跨机器查询,使用dblink
查看>>
mysql5.6.34 升级到mysql5.7.32
查看>>
dba 常用查询
查看>>