版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21121397/article/details/78211721
if (form.refdv == null) return; //退出或关闭
DataTable dt = ((DataTable)dgv.DataSource);
dgv.Enabled = false;
dt.AcceptChanges(); //加上这句正常情况下datagridview末尾就不出现两行空白行
DataRow dr = dt.NewRow();
PublicConvert.DataRowToDataRow(form.refdv, dr);
dt.Rows.Add(dr);
dgv.CurrentCell = dgv.Rows[dt.Rows.Count].Cells[0];
dgv.Enabled = true;
但是我的程序中有个地方还是会出现两行空白行。
断点发现原来是这里
private void dgv_试剂_CellLeave(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == dgv_试剂.Rows.Count - 1) return;//如果是最后一行空白行,则不执行操作,否则datagridview会自动增加一个新空白行,导致末尾两个空白行;
dgv_试剂.EndEdit();
DataGridViewRow dr = dgv_试剂.Rows[e.RowIndex];
if (dr.Cells["TestKitName1"].Value !=null
&& dr.Cells["TestKitName1"].Value.ToString() != ""
&& e.ColumnIndex == dr.Cells["BatchNO1"].ColumnIndex)
{
string batchno = dr.Cells["BatchNO1"].Value.ToString();
if (dr.Cells["ExpiryDate1"].Value.ToString() != ""
&& DateTime.Parse(dr.Cells["ExpiryDate1"].Value.ToString()) == DateTime.Today)
{
dr.Cells["ExpiryDate1"].Value = BatchnoToExpiryDate(batchno);
}
}
}