在DataGridView上禁用CTRL +向上箭头= Home

时间:2009-10-15 11:12:55

标签: c# .net datagridview keyboard

当我在DataGridView上按CTRL和向上箭头时,我转到第一行。当我用向下箭头做同样的事情时,我会去DGV的最后一行。如何在这个方向禁用这种行为,当我要做 CTRL + Up 我会走一行,当我做 CTRL + < kbd> Down 我走了一排?

3 个答案:

答案 0 :(得分:1)

您不应该覆盖OnKeyPress (),因为导航处理程序会在将其发送到OnKeyPress()之前进行导航键击。

相反,您应该覆盖明确存在以处理导航的ProcessDialogKey ()和/或ProcessDataGridViewKey ()

ProcessDialogKey

ProcessDataGridViewKey


ETA:在充分尊重的情况下,通常改变导航行为通常不是一个特别好的主意。许多应用程序使用DataGridView,用户通常期望默认行为,因为这是大多数应用程序将使用的。有一些例外,有时是很好的理由来更改默认导航,但仅仅因为你个人不喜欢默认行为通常不足以改变它。当然,这只是我个人的观点; YMMV。

答案 1 :(得分:0)

查看覆盖OnKeyPress事件...您可能必须声明自己的类 不确切,但一个开始...

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

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

答案 2 :(得分:0)

如果检测到某个键或组合键,则需要覆盖ProcessDialogKey并“取消”该事件。