找回密码
 立即注册

QQ登录

只需一步,快速开始

百里叶扬

注册会员

7

主题

24

帖子

95

积分

注册会员

积分
95
百里叶扬
注册会员   /  发表于:2024-2-19 15:34  /   查看:2854  /  回复:7
1金币
有两个c1flexgrid ,分别为fg1和fg2 ,当在fg1的单元格中按上或下键时,fg2获得焦点,使用fg2.focus() 后,按上下键,不能移动fg2中的行列


  1. Private Sub Fg1_KeyDownEdit(sender As Object, e As KeyEditEventArgs) Handles Fg1.KeyDownEdit


  2.         If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Then
  3. If e.Col = 0 Then
  4.     Fg2.Focus()
  5.             
  6.   End If
  7.         End If
  8.     End Sub

  9. Private Sub Fg2_GotFocus(sender As Object, e As EventArgs) Handles Fg2.GotFocus
  10.         Fg2.Select(1, 1)

  11.     End Sub
复制代码


最佳答案

查看完整内容

嗯,可能是执行时机的关系,如果你还是想要用keydownEdit的话,也可以写一个延迟执行的Task即可

7 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-2-19 15:34:36
来自 6#
嗯,可能是执行时机的关系,如果你还是想要用keydownEdit的话,也可以写一个延迟执行的Task即可

  1.     Private Sub Fg1_KeyDownEdit(sender As Object, e As KeyEditEventArgs) Handles Fg1.KeyDownEdit
  2.         If e.KeyCode = Keys.Up Or e.KeyCode = Keys.Down Then
  3.             If e.Col = 0 Then
  4.                 Task.Run(New Action(Sub()
  5.                                         Task.Delay(100)

  6.                                         Fg2.Invoke(New Action(Sub()
  7.                                                                   Fg2.Focus()
  8.                                                               End Sub))
  9.                                     End Sub))

  10.             End If
  11.         End If

  12.     End Sub
复制代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-2-19 16:51:55
2#
理论上来说Fg2.Focus()后,就可以了。你可以上传一个复现问题的demo,我帮你看看
回复 使用道具 举报
百里叶扬
注册会员   /  发表于:2024-2-19 17:08:18
3#
Richard.Ma 发表于 2024-2-19 16:51
理论上来说Fg2.Focus()后,就可以了。你可以上传一个复现问题的demo,我帮你看看

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-2-20 12:15:03
4#
收到,验证后给你回复
回复 使用道具 举报
百里叶扬
注册会员   /  发表于:2024-2-20 14:58:08
5#
Richard.Ma 发表于 2024-2-20 12:15
收到,验证后给你回复

好的,我试过在KeyPressEdit事件中可以将焦点转移,但在KeyDownEdit事件中不行

  1.   Private Sub Fg1_KeyPressEdit(sender As Object, e As KeyPressEditEventArgs) Handles Fg1.KeyPressEdit

  2.         If e.Col = 0 Then
  3.             If e.KeyChar = Chr(32) Or e.KeyChar = Chr(43) Then
  4.                 Fg2.Focus()
  5.             End If
  6.         End If
  7. end sub
复制代码


上面的代码就是按空格或加号时,将焦点转移到fg2
回复 使用道具 举报
百里叶扬
注册会员   /  发表于:2024-2-23 08:41:52
7#
Richard.Ma 发表于 2024-2-20 17:48
嗯,可能是执行时机的关系,如果你还是想要用keydownEdit的话,也可以写一个延迟执行的Task即可

不好意思,这两天有事一直没有登录,太感谢了,帮我解决了这个问题
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-2-23 17:39:32
8#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部