Winform的DataGridView控件在编辑单元格时事件触发顺序
来源:互联网 发布:淘宝展现量怎么算 编辑:程序博客网 时间:2024/05/16 01:50
在我的测试过程中,从编辑单元格到结束编辑整个过程仅仅涉及到一下几个事件:
dgv_Test_CellBeginEdit
dgv_Test_CellValidating
dgv_Test_CellParsing
dgv_Test_CellValueChanged
dgv_Test_CellValidated
dgv_Test_CellEndEdit
其它可能触发的事件未做测试。
测试过程:
测试1:单元格初始数据为A,进入编辑,不修改单元格数据,直接退出编辑模式
【测试步骤】:
1、点击进入单元格进行编辑。
2、不修改单元格数据,切换单元格直接离开编辑模式。
【事件触发顺序】:
1->dgv_Test_CellBeginEdit
e.RowIndex:[0]
e.ColumnIndex:[3]
2->dgv_Test_CellValidating
e.RowIndex:[0]
e.ColumnIndex:[3]
3->dgv_Test_CellValidated
e.RowIndex:[0]
e.ColumnIndex:[3]
4->dgv_Test_CellEndEdit
e.RowIndex:[0]
e.ColumnIndex:[3]
测试2:单元格初始数据为A,然后修改为B,重新改为A,在单元格离开编辑模式时单元格数据未发生变化。
【测试步骤】:
1、点击进入单元格进行编辑,此时单元格数据为A。
2、修改单元格数据为B。
3、还原为修改前的数据A。
4、切换单元格离开编辑模式(此时单元格数据变化:原数据->新数据->原数据)。
【事件触发顺序】:
1->dgv_Test_CellBeginEdit
e.RowIndex:[1]
e.ColumnIndex:[3]
2->dgv_Test_CellValidating
e.RowIndex:[1]
e.ColumnIndex:[3]
3->dgv_Test_CellParsing
e.RowIndex:[1]
e.ColumnIndex:[3]
4->dgv_Test_CellValidated
e.RowIndex:[1]
e.ColumnIndex:[3]
5->dgv_Test_CellEndEdit
e.RowIndex:[1]
e.ColumnIndex:[3]
当单元格在离开编辑模式时,数据项没有改变时,但存在修改过程,触发dgv_Test_CellParsing,但dgv_Test_CellValueChanged没有触发。
测试3:单元格初始数据为A,修改为B,离开单元格编辑模式,单元格数据发生变化:
【测试步骤】:
1、点击进入单元格编辑模式,此时单元格初始数据为A。
2、修改单元格数据为B。
3、退出单元格编辑模式。
【事件触发顺序】:
1->dgv_Test_CellBeginEdit
e.RowIndex:[2]
e.ColumnIndex:[3]
2->dgv_Test_CellValidating
e.RowIndex:[2]
e.ColumnIndex:[3]
3->dgv_Test_CellParsing
e.RowIndex:[2]
e.ColumnIndex:[3]
4->dgv_Test_CellValueChanged
5->dgv_Test_CellValidated
e.RowIndex:[2]
e.ColumnIndex:[3]
6->dgv_Test_CellEndEdit
e.RowIndex:[2]
e.ColumnIndex:[3]
测试3:单元格初始数据为A,不进入单元格编辑模式,直接切换单元格:
【测试步骤】:
1、点击选中单元格。
2、切换选中的单元格,没有进入编辑模式时触发顺序:
【事件触发顺序】:
1->dgv_Test_CellValidating:[row:0] [column:3]
2->dgv_Test_CellValidated:[row:0] [column:3]
此过程不会触发dgv_Test_CellBeginEdit、dgv_Test_CellEndEdit、dgv_Test_CellParsing、dgv_Test_CellValueChanged方法,未进行编辑,值没有放生变化
触发了CellParsing 事件则说明单元格值存在修改过程,但是修改前和修改后的数据可能一致。
测试4:正在编辑的单元格:直接按下ESC取消编辑
将还原为编辑之前的值,并且不会触发dgv_Test_CellValidating、dgv_Test_CellValidated事件、dgv_Test_CellParsing、dgv_Test_CellValueChanged,
【触发事件以及执行顺序:】
1->dgv_Test_CellBeginEdit:
e.RowIndex:[3]
e.ColumnIndex:[3]
2->dgv_Test_CellEndEdit:
e.RowIndex:[3]
e.ColumnIndex:[3]
另外:
DataGridView.EndEdit() :关闭在当前单元格的编辑操作 此方法将触发 CellEndEdit 事件。
DataGridView.BeginEdit() :如果单元格支持编辑,将设置当前单元格进入编辑模式,此方法将触发 CellBeginEdit 事件。
不要尝试在CellBeginEdit事件中调用DataGridView.BeginEdit()方法,
也不要尝试在CellEndEdit 事件中调用DataGridView.EndEdit() 方法,
会造成死循环
在每个触发的事件中,可以通过参数e中的属性,获取当前正在编辑的单元格的当前值,原始值。
- Winform的DataGridView控件在编辑单元格时事件触发顺序
- WinForm DataGridView单元格变化触发事件
- WinForm DataGridView 可编辑单元格拷贝
- winform中datagridview 在单元格选中状态下(非编辑状态)输入一个字符产生重复的问题
- winform的DataGridView合并单元格
- datalist控件输入中文时事件触发问题分析
- winform中DatagridView单元格动态绑定控件
- c# winform datagridview 编辑单元格内容,没有保存编辑内容
- DataGridView单元格处于编辑状态触发KeyDown等事件
- winform设置DataGridView某行某列单元格为可编辑状态
- DataGridView的DataTime单元格控件
- WinForm中DataGridView控件绑定列顺序
- winform DataGridView双击修改单元格的值
- WinForm开发 DataGridView控件的各种操作总结(一、单元格内容的操作)
- DataGridView中指定的单元格不能编辑
- DataGridView 中指定的 单元格 不能编辑
- DataGridView 中指定的 单元格 不能编辑
- DataGridView中指定的单元格不能编辑
- 利用FlashPaper在web页面中显示PDF文件(兼容各浏览器)
- 人生的终点.
- 秒杀多线程第十一篇 读者写者问题
- Linux命令学习:随机数
- hdu 1010 dfs+奇偶性剪枝
- Winform的DataGridView控件在编辑单元格时事件触发顺序
- http://www.docin.com/p-76750358.html
- AutoCompleteTextView&&MutilAutoCompleteTextView
- 学习C++需要了解的十八个基础知识
- maven实战一:win7下使用eclipse集成maven搭建开发环境
- UVa 12157 - Tariff Plan
- 秒杀多线程第十四篇 读者写者问题继 读写锁SRWLock
- 秒杀多线程第十五篇 关键段,事件,互斥量,信号量的“遗弃”问题
- linux /var/log/secure 日志不记录问题