datagridview选择多行 行选择改变是哪个事件

C#DataGrid控件的整行选取和单击响应_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C#DataGrid控件的整行选取和单击响应
你可能喜欢Winform的DataGridView控件在编辑单元格时事件触发顺序 - CSDN博客
Winform的DataGridView控件在编辑单元格时事件触发顺序
在我的测试过程中,从编辑单元格到结束编辑整个过程仅仅涉及到一下几个事件:
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中的属性,获取当前正在编辑的单元格的当前值,原始值。
本文已收录于以下专栏:
相关文章推荐
首先是自定义了一个方法uodateColumn更新列值
*自定义的修改列值方法
$.extend($.fn.datagrid.methods, {
处理一下CurrentCellDirtyStateChanged事件,当Cell值发生变化,立即提交改变
private void dataGridView1_CurrentCellDirt...
一、单元格内容的操作
 *****// 取得当前单元格内容
        Console.WriteLine(DataGridView1.CurrentCell.Value); 
一、单元格内容的操作
*****// 取得当前单元格内容
Console.WriteLine(DataGridView1.CurrentCell.Value);
// 取得当前单元格的...
一、单元格内容的操作
*****// 取得当前单元格内容
        Console.WriteLine(DataGridView1.CurrentCell.Value);
一、单元格内容的操作 *****// 取得当前单元格内容Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index C...
对于DataGridView控件,与单元格内容相关的有以下这几个事件:
// 当单元格内容改变并且提交之后发生(提交一般是单元格在编辑完之后失去焦点)
private void dataGridVie...
巩固一下自己学过的关于datagridview的知识,内容如下:设置datagridview可编辑列的颜色 ,设置点击datagridview当前单元格事件,一下datagridview简称为DGV
...
没有优化,但是已经实现了,写贴上来,以后优化。
using System.Windows.F
DataGridView 控件提供了多种列类型,使得用户可以通过多种方式输入和编辑值。但是,如果这些列类型无法满足数据输入要求,您也可以使用承载所选控件的单元格创建自己的列类型。要做到这一点,必须定义...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)其他回答(2)
改成CellValueChanging()不行?
这种需求建议最好采用ajax实现,没有一个用户愿意输入一个字符页面就要刷新一下,每输入一个字就必须等一下,用户体验很不好,即使是使用ajax实现也不建议每次输入都触发一次,输入得快就会感觉你的程序卡卡的等问题...
&&&您需要以后才能回答,未注册用户请先。

我要回帖

更多关于 datagridview右键事件 的文章

 

随机推荐