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