日期:2014-05-17  浏览次数:21097 次

DataGridView_CellEndEdit编辑事件无法更新到预定单元格!
private void FengeDate_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewCell cell = FengeDate.Rows[e.RowIndex].Cells[e.ColumnIndex];//编辑的单元格
            int a;
            int b;
            Int32.TryParse(cell.EditedFormattedValue.ToString(),out fengeshuliang);//取得数值
            Int32.TryParse(FengeDate.Rows[e.RowIndex].Cells[14].Value.ToString(),out kefengeshuliang);//取得数值
            if (a> b)//作比较
            {
                MessageBox.Show("分割数量  大于 可分割数量!请重新输入!", "ERROR");
                FengeDate.CurrentCell = cell;
                FengeDate.BeginEdit(true);
            }
        }
大神们,这个小弟做的一个DataGridView_CellEndEdit  结束编辑的判断事件   
如果不符合   光标要留在原单元格    
但是,当我第一次编辑后,点击其他单元格  跳出编辑     
判断失败后
光标是留在了原的单元格,  但第二次编辑后的值跑到我点的 其他单元格 上面了  求指导!!
t编辑事件无法更新到预定单元格! DataGrid_CellEndEdit

------解决方案--------------------
定义两个私有变量
private int cellx = -1;
private int celly = -1;

在CellClick里面写:
if (cellx != -1 && celly != -1)
{
   FengeDate.CurrentCell = FengeDate.Rows[celly].Cells[cellx];
   FengeDate.BeginEdit(true);
}

你的代码修改如下:
private void FengeDate_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            DataGridViewCell cell = FengeDate.Rows[e.RowIndex].Cells[e.ColumnIndex];//编辑的单元格
            int a;
            int b;