2012-06-04 58 views
2

C#的WinFormsC#的DataGridView编辑模式和DELETEKEY

我的DataGridView有:

的SelectionMode - CellSelect

编辑模式 - EditOnKeyStroke

它非常适用所有键除了FOT DELETEKEY(按下时 - 什么发生)。

我想 - 如果DeleteKey被按下 - 选中单元格(或单元格)保持选中,但 - 空值(如在Excel中)。

我必须为DeleteKey创建一个单独的KeyDownEvent吗?

+0

This worked for me http://stackoverflow.com/questions/27007730/how-to-use-default-functionality-for-delete-key-while-in-edit-mode-for-datagridv –

回答

3

删除键在(可能)允许用户从网格中删除一行时具有特殊意义。 Delete键不允许在DataGridView中启动“编辑”模式。因此,您需要以某种方式使单元进入编辑模式,以便允许DataGridViewCell(而不是DataGridView本身)处理删除键。

要做到这一点,您可以按照您的建议实施KeyPress处理程序,以便按下delete可以进入编辑模式,然后再次处理以删除内容。或者,如果这太费工夫了,您还可以将DataGridView.EditMode更改为“OnEnter”,在这种情况下,每个单元格在获得焦点时始终进入编辑模式,无论是通过鼠标还是单元格之间的Tab键。然后,按删除将导致内容被删除。

+0

清除。但是MSLogic有些问题。如果dgv具有SelectionMode = FullRowSelect,则DelKey可以具有“特殊意义”来删除行。但是,如果dgv在CellSellectMode中 - “特殊意义”应该是 - 删除cellContent(或者deleteCell),而不是 - “deleteNothing”。 AnyWay,感谢您的解释。 – Bonaca

+0

这是一个肯定的解释,但API设计总是主观的。 :-) –