我在DataGridView中自定义了一个下拉框列,所以才产生了要自己实现底部新增空行的问题。
我要实现自定义下拉框内容由空变为非空时,在DataGridView底部新增空行,我发现dataGridView.Rows.Insert()和dataGridView.Rows.Add()默认都是在顶部新增行。虽然Insert支持在指定行新增,但是仍旧不支持在最后一行后面新增。
所以我的实现方法如下,我想知道还有没有其他方法可以实现DataGridView默认的新增行操作?//在自定义控件失去焦点事件中定义处理过程。
private void DataGridViewDropListEditingControl_LostFocus(Object sender, EventArgs e)
        {            if (this.Text != "" && this.rowIndex == dataGridView.RowCount - 1)
            {
                DataGridViewRow row = new DataGridViewRow();
                int i = 0, cnt = dataGridView.RowCount;
                foreach (DataGridViewColumn c in dataGridView.Columns)
                {
                    row.Cells.Add(c.CellTemplate.Clone() as DataGridViewCell);//给行添加单元格
                    row.Cells[i].Value = dataGridView.Rows[cnt - 1].Cells[i].Value;
                    dataGridView.Rows[cnt - 1].Cells[i++].Value=null;
                }
                dataGridView.Rows.Insert(dataGridView.Rows.Count - 1, row);
            }
        }

解决方案 »

  1.   

    默认就是可以的,有一个属性 AllowUserToAddRow,默认为true,当你在一个单元格录入时,就会出现一个新的空白行
      

  2.   

    可以设置属性 AllowUserToAddRow
      

  3.   

    我设置了AllowUserToAddRow,可是这对于用户自定义列是不触发新增行事件的。
      

  4.   

    遇到和楼主一样的问题,AllowUserToAddRow地确是设为了true,但是给dataGridView选择完值后就是不会在出现最底下的空白行,除非把上面一行的革列设为可修改并更改数据后就会出现新的空白行了。
    请版主帮忙解决下。
      

  5.   

    不是在datagridview中的界面上有个三角符号,点击它会出现启用添加那个选项,,这个是不是LZ要的啊
      

  6.   

    dataGridView.Rows.Insert(dataGridView.Rows.Count - 1, row);楼主可以看看这句是不是有问题看看行的索引是不是对呢?
      

  7.   


    =======================================================
    .NET快速开发整合框架(RDIFramework.NET),基于.NET的快速开发、整合框架,给用户和开发者最佳的.Net框架部署方案。
    平台博客:[CNBLOGS]http://www.cnblogs.com/huyong 
         [CSDN]http://blog.csdn.net/chinahuyong
    交流QQ:406590790 (请注明:CSDN)
    平台微博:http://t.qq.com/yonghu86
    邮件交流:[email protected]