WinForm笔记1:TextBox编辑时和DataGridView 单元格编辑时 的事件及其顺序

TextBox 编辑框

When you change the focus by using the mouse or by calling the Focus method, focus events occur in the following order:

Enter

GotFocus

LostFocus

Leave

Validating

Validated
---------------------

Cell单元格

第一种顺序,即不进行Cell编辑的情况下:

CellEnter-发生于 DataGridView 单元格的焦点获取的时候,或是单元格收到输入焦点的时候。

CellLeave-发生于单元格失去输入焦点时,而且现在是当前的单元格。

CellValidating-发生于单元格失去输入焦点时,同时触发数据验证,进行数据验证。

CellValidated –发生于单元格完成数据验证之后。

 

第二种对单元格进行编辑之后的事件顺序

CellEnter-发生于 DataGridView 单元格的焦点获取的时候,或是单元格收到输入焦点的时候。

CellBeginEdit –发生于选中的单元格进入编辑模式的时候。

CellLeave-发生于单元格失去输入焦点时,而且现在是当前的单元格。

CellValidating-发生于单元格失去输入焦点时,同时触发数据验证,进行数据验证。

CellValueChanged-发生于单元格中的值发生变更时。

CellValidated -发生于单元格完成数据验证之后。

CellEndEdit-发生于当前所选中的单元格退出编辑模式时。

应用

利用CellValidating事件 来验证输入数据,不合法就取消编辑。

 

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
    //可编辑的列
    if (e.ColumnIndex != 2 && e.ColumnIndex != 3)
        return;
    double outDb = 0;
    if (double.TryParse(e.FormattedValue.ToString(), out outDb))
    {
        e.Cancel = false;
    }
    else
    {
        e.Cancel = true;//数据格式不正确则还原
        dataGridView1.CancelEdit();
    }
}
原文地址:https://www.cnblogs.com/noigel/p/10931433.html