winforms .net 3.5 Ultrawingrid 9.2
在我的 Ultrawingrid.Ultragrid 子类中:
Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Windows.Forms.Keys.Tab andalso e.control = True then
SetFocusToNextControl(True)
End if
Mybase.OnKeyDown(e)
End Sub
这工作正常。但是当网格被放到 TabControl 标签页上时,ctrl-tab 看起来与上面的 sub 非常不同。e.keycode 被视为 controlkey {17}
我意识到默认情况下 cntrl-Tab 在标签页之间移动。我需要覆盖这种行为。我的想法是我可能需要一个 tabControl 的子类,它会像表单一样通过 keycombo,但我承认对于如何完成它一无所知。我试图覆盖 tabcontrol 子类的 onkeydown,如果按下 ctrl-tab 组合,则只发出一个 return 而不是对 onkeydown 的基本调用,但它似乎也将 e.keycode 视为 controlkey。
FWIW 我尝试了一个不同的组合,比如 ctrl-E 并得到了几乎相同的结果,焦点从网格中消失但没有去任何我能检测到的地方。潜艇仍然将 e.control 视为 controlkey。
奇怪的是,ctrl-X、ctrl-A 等都在网格中工作,我在子类中放置的用于删除行的 ctrl-Delete 组合工作正常。
再一次 - 直接在表格上网格,这一切都有效。
在这个问题上,我绝对超出了我的想象。非常感谢指导。vb 或 c# 很好。
TIA