考慮使用SelectionMode = RowHeaderSelect的2個DataGridView。在grid1中,我有2列;一個TextBox和一個CheckBox。在grid2中,我有2列;一個組合框和一個文本框。DataGridView UserDeletingRow未觸發
當我點擊RowHeader時,焦點轉到第一個單元格,而不是RowHeaderCell。當按下DEL按鈕時,單元格的內容被刪除(TextBox內容被清除,ComboBox被設置爲第一項)。
這樣的UserDeletingRow事件永遠不會觸發如DataGridView的常見問題解答說,「用戶可以刪除行只有在當前小區是不是在編輯模式下,AllowUserToDeleteRows屬性設置爲true」。
作爲一種變通方法我在RowHeaderMouseClick
grid.CurrentCell = grid.Rows[rowIndex].Cells[columnName];
grid.Rows[rowIndex].Selected = true;
實現這個代碼在GRID1的情況下,我通過複選框列和當我按下DEL的UserDeletingRow事件觸發的名稱。但是,對於grid2傳遞ComboBox列的名稱不會觸發事件。
我試過以下內容:
1-選擇RowHeaderCell - > Exception,因爲它不能被選中。
2- grid.EndEdit() - >沒有效果。
3-將SelectionMode更改爲FullRowSelect,然後返回RowHeaderSelect - > Cell設置爲編輯模式。
我的問題:
我需要UserDeletingRow觸發,無論網格的列嗎?或者如果可能,選擇HeaderCell的解決方法?
編輯(縮寫的問題):
點擊的rowHeader選擇行,並把第一個單元格在編輯模式下,如果適用,這樣點擊DEL鍵刪除單元格內容,不火UserDeletingRow事件。作爲一種解決方法,我選擇一個單元格(如果可用),它不能被置於編輯模式,例如, CheckBoxColumn。
這是單擊RowHeader的默認行爲嗎?如果是的話,你能告訴我一個解決方法嗎?如果沒有,你能指出我這種行爲的原因嗎?
編輯2:
我發現,在編輯模式下設置爲EditOnEnter發出咔噠的rowHeader把第一個單元格中的編輯模式。我會盡力克服這一點,但任何幫助表示讚賞。
很高興你知道,我可以幫忙; - ] – M2X 2010-11-11 21:35:09