2012-06-04 64 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設計總是主觀的。 :-) –