我使用CheckedListBox作爲自定義DataGridView單元類編輯模式的基礎。我想在用戶按下退出鍵時關閉編輯。如果用戶沒有選擇任何重寫OnKeyDown完美的作品。問題是如果他們做OnKeyDown(和OnKeyPressed)不被CheckedListBox觸發;而是行項目取消選擇並吃掉事件。這意味着如果用戶通過單擊列表中的任何項目進行選擇,則需要按兩下退出才能關閉編輯。一個取消選擇他們點擊的行,另一個取消編輯模式。在選擇列表框項目時獲取CheckedListBox控件中的關鍵事件
0
A
回答
0
爲了訪問ESC鍵,我不得不改變IDataGridViewEditingControl.EditingControlWantsInputKey(IsInputKey對正常對照當量)的行爲傳遞逃避我的onkeydown事件。
/// <summary>
/// Implements the IDataGridViewEditingControl.EditingControlWantsInputKey method.
/// </summary>
/// <param name="key"></param>
/// <param name="dataGridViewWantsInputKey"></param>
/// <returns></returns>
public bool EditingControlWantsInputKey(Keys key, bool dataGridViewWantsInputKey)
{
// Let the custom edit control handle the keys listed.
switch (key & Keys.KeyCode)
{
case Keys.Escape:
return true;
default:
return !dataGridViewWantsInputKey;
}
}
2
嘗試覆蓋自定義DataGridView本身的IsInputKey,如果它是[Esc]則返回false,因此網格忽略Esc。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.isinputkey.aspx
你可以只忽略,如果沒有什麼在「編輯模式」或類似的inputKey也許enhave此行爲。
相關問題
- 1. 如何在DragOver事件中獲取列表框選定項目
- 2. 選擇同一項目時從組合框中獲取事件
- 3. checkedListBox事件 - 獲取選定的項目/對象屬性
- 4. CheckedListBox項目選擇
- 5. checkedlistbox取消選中任何項目時取消選擇
- 6. 在CheckedListBox中選擇項目,如果它出現在列表中
- 7. 在複選框列表控件中獲取複選框的值
- 8. 關於項目在下拉列表中添加事件(選項選擇器)
- 9. 如何獲取複選框列表控件中的選定項目
- 10. 從窗口中獲取用戶控件中的選定列表框項目
- 11. wpf選擇列表框中的控件
- 12. 如何獲取選擇控件中選定項目的文本?
- 13. 關閉特定項目事件選擇
- 14. 如何選中或取消選中VB.NET中的所有項目CheckedListBox控件
- 15. 如何在jquery中獲取所有選擇表單的關鍵事件
- 16. 獲取javascript中的最後一個選擇列表框項目
- 17. 獲取選項卡選擇事件的視圖控制器
- 18. 完成選擇項目時的事件?
- 19. 在列表框中選擇項目
- 20. 如何在javascript中獲取Primefaces選項列表傳輸事件的項目
- 21. 獲取列表控件中的選定項目,更改子項目
- 22. 從Windows Phone列表框中獲取所選項目舉行事件
- 23. 在列表框中的項目中獲取組合框中的選定項目
- 24. checkedlistbox項目檢查到列表框
- 25. 單選CheckedListBox控件
- 26. 刪除選擇時選擇的項目會從列表框中
- 27. 如何獲得關鍵事件的角度選擇的選擇
- 28. 無法添加選中項目checkedlistbox form1到列表框2
- 29. 事件關閉在選擇JS選項
- 30. 在WPF列表框項目模板中捕獲事件
我試着覆蓋這個在我的CellEditControl上,但改變它返回true而不是false當按下轉義鍵時仍然不讓它到達CellEditControl的KeyDownEvent。 –
從IsInputKey()中明確調用OnKeyDown()來實現我想要的;但是啊,這是一個討厭的雜食。 –
原來問題出在'IDataGridViewEditingControl.EditingControlWantsInputKey'我根本就不需要去觸及IsInputKey,因爲這個方法可以讓你做同樣的事情,並在之後解僱我試圖做的變化isInputKey –