Foxtable(狐表)用户栏目专家坐堂 → [求助]小键盘右键略过锁定列


  共有11363人关注过本帖树形打印复制链接

主题:[求助]小键盘右键略过锁定列

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]小键盘右键略过锁定列  发帖心情 Post By:2012/11/9 16:37:00 [只看该作者]

在表A中有几个锁定列,分别是2456列

现在光标停留在第一列上,希望按一下小键盘的右方向键,则光标略过第2列,停留在本行的第3列上,再按一上右方向键,焦点略过456列,停留在本行的第7列上。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小键盘右移略过锁定列.table


只是示例,真正应用的时候,锁定哪些列是不固定的。
[此贴子已经被作者于2012-11-9 16:40:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/9 16:53:00 [只看该作者]

简单做一个,模拟按下Tab键。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小键盘右移略过锁定列.table

 

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/11/9 17:19:00 [只看该作者]

解决了部分问题。
出现了新问题。

1.我的表设定是按回车键向下移。

现在,按回车键先移到本行的非锁定列的下一行;按左方向键的先回到左一单元格,再按左又执行了tab操作…………

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/9 17:42:00 [只看该作者]

 对事件加一个判断就行了……

If e.KeyCode = Keys.Tab OrElse e.KeyCode = Keys.Right Then

End If
[此贴子已经被作者于2012-11-9 17:44:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/11/10 20:10:00 [只看该作者]

我想做的是在小键盘上操作左右方向 键,跳过锁定列。

但是好象出问题了。右移还好,左移的时候,不能成功。

请问问题出在哪里?
Select Case e.KeyCode
    Case Keys.right  ,Keys.Tab
        If e.Table.colSel = e.Table.Cols.Count - 1 Then Return
        If e.Table.Cols(e.Table.colSel+1).AllowEdit = False Then
            Sendkeys.Send("{Tab}")
        End If
    Case Keys.left
        If e.Table.colSel = 0  Then Return
        If e.Table.Cols(e.Table.colSel-1).AllowEdit = False Then
            Sendkeys.Send("+{Tab}")     '是不是这里写错了?
        End If
End Select

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小键盘左右移略过锁定列.table


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 21:08:00 [只看该作者]

 最后的代码。

Select Case e.KeyCode
    Case Keys.right, Keys.Tab
        If e.Table.colSel = e.Table.Cols.Count - 1 Then Return
        If e.Table.Cols(e.Table.colSel+1).AllowEdit = False Then
            Sendkeys.Send("{Tab}")
        End If
    Case Keys.left
        If e.Table.colSel = 0  Then Return
        If e.Table.Cols(e.Table.colSel-1).AllowEdit = False Then
            e.Table.Select(e.Table.RowSel, e.Table.colSel-1)
            Sendkeys.Send("{LEFT}")
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2012/11/10 21:16:00 [只看该作者]

非常感谢 ………………
有一点点偏差,应当是
    Case Keys.left
        If e.Table.colSel = 0  Then Return
        If e.Table.Cols(e.Table.colSel-1).AllowEdit = False Then
            e.Table.Select(e.Table.RowSel, e.Table.colSel-1)
            e.Table.Select(e.Table.RowSel, e.Table.colSel) 
            Sendkeys.Send("{LEFT}")
        End If

 回到顶部