Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Datagridview,转到单元格_C#_Winforms_Datagridview - Fatal编程技术网

C# Datagridview,转到单元格

C# Datagridview,转到单元格,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个Datagridview,用户可以在其中输入文本。 单元格上必须有有效的数据,如果没有,他将收到一条消息,说明数据应该如何,编辑的值将被取消,这将在CellLeave事件中触发。当这种情况发生时,我希望应用程序留在这个单元格上,但每次它离开时(用户用光标或按tab键选择),我希望它留在无效的单元格上。 当我搜索这个问题时,我得到了一些解决方案,如: datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true; 或

我有一个Datagridview,用户可以在其中输入文本。 单元格上必须有有效的数据,如果没有,他将收到一条消息,说明数据应该如何,编辑的值将被取消,这将在
CellLeave
事件中触发。当这种情况发生时,我希望应用程序留在这个单元格上,但每次它离开时(用户用光标或按tab键选择),我希望它留在无效的单元格上。 当我搜索这个问题时,我得到了一些解决方案,如:

datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;


但这里没有魔法。知道我做错了什么吗?

不要使用CellLeave事件,尝试使用CellValidating事件。如果取消该事件,我相信DataGridView会强制用户在离开单元格之前修改数据


给定的
DataGridViewCellValidatingEventArgs
对象应该具有
e.FormattedValue
中所需的值,如果
e.Cancel
设置为true,则可以取消该对象。

感谢您的回答,但不幸的是,它不会发挥神奇的作用,它仍然会转到下一个单元格。它在这里正常工作。您是否正在使用
e.FormattedValue
检查值,并使用
e.Cancel=true
取消值?下次发言之前,我需要仔细查看-。-“我希望它能用我给出的代码修复它,没有看e。取消(很遗憾)谢谢:)没问题。我会把答案修改得更清楚。
datagridview.CurrentCell = datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex];