如何在用户离开单元格时更改datagrid单元格值

时间:2015-12-02 18:07:51

标签: c# winforms datagridview datagrid

找不到任何方法来做我喜欢的事。 我有一个名为DataGridView的{​​{1}}。我想要的是在填写之后检查当前单元格是否可接受(不低于data1)。如果是 - 将其更改为-99。如果我将最小值设置为文本框并在其不正确时更改其值,则类似。 这是代码:

-99

此代码不起作用。并没有出现任何错误。

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找的是DataGridView.CellValidating当用户离开当前单元格但在CellLeave触发或绑定数据被推送到数据源之前,此事件将触发。这允许您:检查用户输入的值,防止用户离开单元格,更改用户输入的值,在单元格上设置错误指示符。

答案 1 :(得分:1)

此代码可按您的要求运行:

private void data1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    DataGridViewTextBoxCell cell = (DataGridViewTextBoxCell)data1.Rows[e.RowIndex].Cells[e.ColumnIndex];
    if (Convert.ToInt32(cell.Value) <= -99)
        cell.Value = -99;
}

Cellleave在将单元格更改为其他单元格并离开单元格后,事件将获取单元格的上一个值。 CellEndEdit事件获取最后一个值。代码在CellValidated事件中也相同