以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]小键盘右键略过锁定列 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25452) |
||||
-- 作者:chnfo -- 发布时间:2012/11/9 16:37:00 -- [求助]小键盘右键略过锁定列 在表A中有几个锁定列,分别是2456列 现在光标停留在第一列上,希望按一下小键盘的右方向键,则光标略过第2列,停留在本行的第3列上,再按一上右方向键,焦点略过456列,停留在本行的第7列上。
只是示例,真正应用的时候,锁定哪些列是不固定的。
[此贴子已经被作者于2012-11-9 16:40:06编辑过]
|
||||
-- 作者:lin_hailun -- 发布时间:2012/11/9 16:53:00 -- 简单做一个,模拟按下Tab键。
|
||||
-- 作者:chnfo -- 发布时间:2012/11/9 17:19:00 -- 解决了部分问题。 出现了新问题。 1.我的表设定是按回车键向下移。 现在,按回车键先移到本行的非锁定列的下一行;按左方向键的先回到左一单元格,再按左又执行了tab操作…………
|
||||
-- 作者:lin_hailun -- 发布时间: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 -- 发布时间: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
|
||||
-- 作者:lin_hailun -- 发布时间: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 -- 发布时间:2012/11/10 21:16:00 -- 非常感谢 ……………… 有一点点偏差,应当是 Case Keys.leftIf 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 |