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(); } }