Foxtable(狐表)用户栏目专家坐堂 → 备注栏窗口随着鼠标点击表格不同列的切换而切换


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

主题:备注栏窗口随着鼠标点击表格不同列的切换而切换

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
备注栏窗口随着鼠标点击表格不同列的切换而切换  发帖心情 Post By:2023/11/15 22:25:00 [显示全部帖子]

表格建了好几个“备注”型的列,当鼠标点击选择不同备注列时,备注列窗口并没随着鼠标的点选而自动切换。
我找到图1所示代码,说是能解决这个问题。
但是,当我把代码复制到表格的click事件里,并没有达到预期效果。
图1:

图片点击可在新窗口打开查看此主题相关图片如下:img_20231115_221833.jpg
图片点击可在新窗口打开查看
图2:

图片点击可在新窗口打开查看此主题相关图片如下:img_20231115_221900.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/11/16 10:29:00 [显示全部帖子]


[此贴子已经被作者于2023/11/16 14:16:29编辑过]

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/11/16 10:44:00 [显示全部帖子]


以下内容是专门发给有点蓝浏览


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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/11/16 11:01:00 [显示全部帖子]

1.您能稍微解释下上面的整块代码吗?grid之类的我在帮助里查了,但是看不懂。
2.您为什么加了上面的那句话,就可以了?

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/11/16 11:14:00 [显示全部帖子]

还有个问题,就是我发现这个切换功能仅在鼠标点击的时候管用(因为是click事件),但是用方向键切换到相应的备注列时,备注窗口仍无法自动切换。
于是,我想把代码复制粘贴到afterselchange事件里,但是不管用。

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/11/16 11:43:00 [显示全部帖子]

不好意思,真不会啊……
因为原来代码看不懂,keydown事件里的e参数跟click又不一样……

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/11/18 22:10:00 [显示全部帖子]

 谢谢版主的回复。
1.我试了代码,发现有个问题,就是一按左箭头,“选中列”会向右移动两行(即,会暗中跳过一行)。
2.我学习了下您写的代码,试了试,发现即使在空表里,也存在上面这个问题。
问题描述在下面代码里以注释形式出现,您可以把下面代码复制到空项目的keydown事件里,然后在空表里按左键头,即可发现问题。
如下:

Dim idx As Integer = -1
'假如,按下左箭头之前,当前选中单元格是第6行第4列(列脚标是3)
Select Case e.KeyCode
    Case Keys.Left
        MessageBox.Show("current col1:" & e.Table.ColSel) '输出结果=3
        If e.Table.ColSel > 0 Then '3>0
            idx = e.Table.ColSel - 1
            e.Table.Select(e.Table.RowSel, idx) '从显示可以看出,此时第6行第3列单元格被高亮选中
            MessageBox.Show("current col2:" & e.Table.ColSel) '输出结果=2
            '问题:上面对话框显示完2,表格会再向左选中左边的单元格,相当于向左移动了两次(但ColSel只减了一个1)。
        End If
    Case Keys.Right
        If e.Table.ColSel < e.Table.Cols.Count - 1 Then
            idx = e.Table.ColSel + 1
            e.Table.Select(e.Table.RowSel, idx)
        End If
End Select

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


加好友 发短信
等级:幼狐 帖子:162 积分:1326 威望:0 精华:0 注册:2023/9/3 18:40:00
  发帖心情 Post By:2023/11/20 23:22:00 [显示全部帖子]

能解释下原因吗?为什么加上这句话就好了啊?不太懂。

 回到顶部