如何在用户离开单元格时更改数据网格单元格值

本文关键字:单元格 数据 数据网 网格 用户 离开 | 更新日期: 2023-09-27 18:25:19

找不到任何方法来做什么。我有一个名为data1DataGridView。我只想在填充后检查当前单元格是否可以接受(不低于-99)。如果可以,请将其更改为-99。类似地,如果我将最小值设置为文本框,并在不正确的情况下更改其值。这是代码:

private void data1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
    if (Convert.ToInt32(((DataGridView)sender).CurrentCell.Value) < -99)
    {
        ((DataGridView)sender).CurrentCell.Value = -99;                
    }
}

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

如何在用户离开单元格时更改数据网格单元格值

这段代码可以随心所欲地工作:

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事件中的工作原理与相同。

我想你要找的是DataGridView.cell验证此事件在用户离开当前单元格时但在CellLeave触发或绑定数据被推送到数据源之前触发。这允许您:检查用户输入的值,防止用户离开单元格,更改用户输入的数值,在单元格上设置错误指示器。