百里叶扬 发表于 2024-2-19 15:34:35

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

Richard.Ma 发表于 2024-2-19 15:34:36

嗯,可能是执行时机的关系,如果你还是想要用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

Richard.Ma 发表于 2024-2-19 16:51:55

理论上来说Fg2.Focus()后,就可以了。你可以上传一个复现问题的demo,我帮你看看

百里叶扬 发表于 2024-2-19 17:08:18

Richard.Ma 发表于 2024-2-19 16:51
理论上来说Fg2.Focus()后,就可以了。你可以上传一个复现问题的demo,我帮你看看

双击Fg1中的编码列,或录入字符,进入编辑状态时,按上或下方向键,虽然焦点给到了fg2,但光标无法移动

Richard.Ma 发表于 2024-2-20 12:15:03

收到,验证后给你回复

百里叶扬 发表于 2024-2-20 14:58:08

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

百里叶扬 发表于 2024-2-23 08:41:52

Richard.Ma 发表于 2024-2-20 17:48
嗯,可能是执行时机的关系,如果你还是想要用keydownEdit的话,也可以写一个延迟执行的Task即可

不好意思,这两天有事一直没有登录,太感谢了,帮我解决了这个问题:handshake

Richard.Ma 发表于 2024-2-23 17:39:32

不客气
页: [1]
查看完整版本: c1flexgrid 获得焦点后,如何可以移动光标