DataGridView 添加一行时,为什么会在后面出来两个空行
DataGridView 绑定的数据源是 mDetailTable,
在DataGridView 中单击"品名"一列时,
先 mDetailTable.NewRow() 得到一个新的row,然后将这个row传给弹出窗口,
由弹出窗口编辑内容后返回这个row,让mDetailTable.Rows.Add(row)添加数据,
然后DataGridView 刷新 dgvEdit.Refresh(),
现在的问题是添加一行记录后,DataGridView后面会出来两个空行,
按我的想法,最多应该是一个用来新增的空行啊,这个是什么问题,怎么解决啊?
DataGridView 的EditMode 是 EditProgrammatically
CSDN不能帖图,我画个样子,大家帮我看看
┏┳━━┳━━┳━━┳━━┓
┃┃品名┃型号┃单位┃数量┃ //列头
┣╋━━╋━━╋━━╋━━┫
┃┃001 ┃S001┃ 个 ┃1000┃
┣╋━━╋━━╋━━╋━━┫
┃┃ ┃ ┃ ┃ ┃ //空行一,添加后,焦点会自动到这一行第一列
┣╋━━╋━━╋━━╋━━┫
┃┃ ┃ ┃ ┃ ┃ //空行二,不知道为什么会出来?
┗┻━━┻━━┻━━┻━━┛
//连接数据源
private void InitData()
{
dgvEdit.DataSource = mDetailTable;
}
//在品名一列单击时,弹出一个窗口编辑数据
private void dgvEdit_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvEdit.Columns[e.ColumnIndex].Name == "品名")
{
FormOrderDetailInput frmInput = new FormOrderDetailInput();
DataRow row;
if (e.RowIndex >= mDetailTable.Rows.Count)
{
row = mDetailTable.NewRow();
}
else
{
row = mDetailTable.Rows[e.RowIndex];
}
frmInput.EditOrderDetail(row);
if (frmInput.DialogResult == DialogResult.OK)
{
if (e.RowIndex >= mDetailTable.Rows.Count)
{
mDetailTable.Rows.Add(row);
//dgvEdit.CancelEdit(); 添加后用取消编辑也没用
//dgvEdit.EndEdit(); 添加后提交也没用
}
dgvEdit.Refresh();
}
}
}