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

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
                }
            }
        }

猜你喜欢

转载自blog.csdn.net/qq_21121397/article/details/78211721