datagridveiw添加行末尾出现两行的情况

来源:互联网 发布:阿里云服务器管理终端 编辑:程序博客网 时间:2024/06/05 10:26
   
                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);                }            }        }