是的,在EditOnEnter的情况下,编辑控件会始终保持着焦点,所以键盘消息都会发给编辑控件,而不会发给MultiRow。
请尝试以下代码,看是否可以解决您的用例
- Private Sub GcMultiRow1_EditingControlShowing(ByVal sender As Object, ByVal e As GrapeCity.Win.MultiRow.EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
- RemoveHandler e.Control.KeyDown, AddressOf EditingControl_KeyDown
- AddHandler e.Control.KeyDown, AddressOf EditingControl_KeyDown
- End Sub
- Private Sub EditingControl_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
- MessageBox.Show("keyenter2")
- End Sub
复制代码 说明:以上代码是在EditingControlShowing事件中有挂了编辑控件的KeyDown事件。这样就可以处理发送给编辑控件的键盘事件了。
需要注意到是,每次装载编辑控件,都会触发EditingControlShowing事件,所以在AddHandler之前先RemoveHandler一次,以确保事件只会被挂一次。 |