当我在DataGridView上按CTRL和向上箭头时,我转到第一行。当我用向下箭头做同样的事情时,我会去DGV的最后一行。如何在这个方向禁用这种行为,当我要做 CTRL + Up 我会走一行,当我做 CTRL + < kbd> Down 我走了一排?
答案 0 :(得分:1)
您不应该覆盖OnKeyPress ()
,因为导航处理程序会在将其发送到OnKeyPress()之前进行导航键击。
相反,您应该覆盖明确存在以处理导航的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并“取消”该事件。