c1flexgrid 获得焦点后,如何可以移动光标
有两个c1flexgrid ,分别为fg1和fg2 ,当在fg1的单元格中按上或下键时,fg2获得焦点,使用fg2.focus() 后,按上下键,不能移动fg2中的行列Private Sub Fg1_KeyDownEdit(sender As Object, e As KeyEditEventArgs) Handles Fg1.KeyDownEdit
If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Then
If e.Col = 0 Then
Fg2.Focus()
End If
End If
End Sub
Private Sub Fg2_GotFocus(sender As Object, e As EventArgs) Handles Fg2.GotFocus
Fg2.Select(1, 1)
End Sub
嗯,可能是执行时机的关系,如果你还是想要用keydownEdit的话,也可以写一个延迟执行的Task即可
Private Sub Fg1_KeyDownEdit(sender As Object, e As KeyEditEventArgs) Handles Fg1.KeyDownEdit
If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Then
If e.Col = 0 Then
Task.Run(New Action(Sub()
Task.Delay(100)
Fg2.Invoke(New Action(Sub()
Fg2.Focus()
End Sub))
End Sub))
End If
End If
End Sub 理论上来说Fg2.Focus()后,就可以了。你可以上传一个复现问题的demo,我帮你看看 Richard.Ma 发表于 2024-2-19 16:51
理论上来说Fg2.Focus()后,就可以了。你可以上传一个复现问题的demo,我帮你看看
双击Fg1中的编码列,或录入字符,进入编辑状态时,按上或下方向键,虽然焦点给到了fg2,但光标无法移动
收到,验证后给你回复 Richard.Ma 发表于 2024-2-20 12:15
收到,验证后给你回复
好的,我试过在KeyPressEdit事件中可以将焦点转移,但在KeyDownEdit事件中不行
Private Sub Fg1_KeyPressEdit(sender As Object, e As KeyPressEditEventArgs) Handles Fg1.KeyPressEdit
If e.Col = 0 Then
If e.KeyChar = Chr(32) Or e.KeyChar = Chr(43) Then
Fg2.Focus()
End If
End If
end sub
上面的代码就是按空格或加号时,将焦点转移到fg2 Richard.Ma 发表于 2024-2-20 17:48
嗯,可能是执行时机的关系,如果你还是想要用keydownEdit的话,也可以写一个延迟执行的Task即可
不好意思,这两天有事一直没有登录,太感谢了,帮我解决了这个问题:handshake 不客气
页:
[1]