0

我有一个DataGridView并且我检测到何时按下输入键以验证/提交单元格的值。我检测到这个键,ProcessCmdKey但我知道存在另一种类似的方法ProcessDialogKey,那么它们之间的区别是什么?如果我使用ProcessCmdKeyfor detectionEnter和keys 而不是 usingTab会发生什么?EscProcessDialogKey

另外,我的应用程序中有一个小问题,我已将删除键关联到删除树 winforms 组件中的当前选定项目,但是当我在 aDataGridView的单元格中处于编辑模式并按下删除键时会引发此事件。因此,如果 a 的单元格当前处于编辑模式并且用户按下删除键,我想处理此键DataGridView以避免引发删除树中选定项目的事件。那么如何实现呢?我可以ProcessCmdKey用来检测删除键,如果可以,使用它吗?它应该工作吗?

4

1 回答 1

1

要验证 中的一行DataGridView,您应该使用RowValidating事件,这将使您免于ProcessCmdKey. 如果您使用鼠标、向上/向下箭头或向上/向下翻页离开该行,它还将负责验证。

关于TreeView,你应该更好地使用KeyDownevent. TreeView没有任何额外的步骤,只有在被聚焦时才会被触发。如果你在里面工作DataGridView- 它不会触发。也就是说,Delkey 在 mode 下会删除文本Edit,当 row 被选中时会删除行,如果坐在单元格上什么也不做。这是相关控件的默认行为 - 无需额外代码即可使其工作。

你应该避免覆盖ProcessCmdKey,除非它不起作用(这是罕见的情况)。

于 2012-11-10T18:18:24.253 回答