项目中一个功能需要在UltraGrid控件中实现上下左右键,选择单元格的方式来编辑列值,
查找和参考了相关资料,最后在Epic系统中,对Form界面定制KeyDown事件,完整代码如下:
(说明:UltraGrid默认的选择方式为行选择,默认状况下选择列后下移会跳行,可能是BUG)
Private Sub ugdAPSchedule_KeyDown(ByVal Sender As Object, ByVal Args As System.Windows.Forms.KeyEventArgs) Handles ugdAPSchedule.KeyDown '// event handling code generated by wizard
Select Case Args.KeyCode
Case 40
'===Key Down
ugdAPSchedule.PerformAction(UltraGridAction.ExitEditMode, False, False)
ugdAPSchedule.PerformAction(UltraGridAction.BelowCell, False, False)
Args.Handled = true
ugdAPSchedule.PerformAction(UltraGridAction.EnterEditMode, False, False)
Case 38
'===Key Up
ugdAPSchedule.PerformAction(UltraGridAction.ExitEditMode, False, False)
ugdAPSchedule.PerformAction(UltraGridAction.AboveCell, False, False)