2009-10-15 55 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,用户通常会期望默认行为,因为这是大多数应用程序将使用的。有些例外,有时是很好的理由来改变默认导航,但仅仅因为你个人不喜欢默认行为通常不是改变它的充分理由。当然,这仅仅是我个人的观点。因人而异。

相关问题