2009-10-15 30 views
0

當我按下DataGridView上的CTRL和向上箭頭時,我會轉到第一行。當我對Down Arrow做同樣的操作時,我會進入DGV的最後一行。如何禁用此行爲在這個方向上,當我將盡CTRL +最多會一行起來,當我做CTRL +去一排下來?在DataGridView上禁用CTRL +向上箭頭= Home

回答

0

如果您檢測到某個鍵或組合鍵,則需要重寫ProcessDialogKey並'取消'該事件。

0

考慮重寫事件的OnKeyPress ...您可能必須申報自己的類 並不確切,而是一個開始......

public class MyDataGridView : DataGridView 
{ 
    ... 
    ... 

    public override void OnKeyPress(object sender, KeypressEventArgs e) 
    { 
     trap your own "e." values 
    } 
} 
1

你不應該重寫OnKeyPress()因爲導航處理器吃的導航按鍵然後發送給OnKeyPress()。

相反,您應該覆蓋ProcessDialogKey()和/或ProcessDataGridViewKey(),它們明確存在以處理導航。

ProcessDialogKey

ProcessDataGridViewKey


ETA:與所有應有的尊重,一般它通常不改變的導航行爲,特別是好主意。許多應用程序使用DataGridView,用戶通常會期望默認行爲,因爲這是大多數應用程序將使用的。有些例外,有時是很好的理由來改變默認導航,但僅僅因爲你個人不喜歡默認行爲通常不是改變它的充分理由。當然,這僅僅是我個人的觀點。因人而異。

相關問題