以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]用快捷键上下移动行后焦点落在最上或最下一行  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=172062)

--  作者:huangfanzi
--  发布时间:2021/9/21 11:03:00
--  [求助]用快捷键上下移动行后焦点落在最上或最下一行
论坛上也找了下相关帖子,发现在19时就有人提出相关问题,http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=141617&replyID=&skin=1
刚才试了下,搞个按钮,并在按钮中执行相关代码,上下移动行后的焦点问题是正常的,但用快捷键不行,上移一行后,焦点会落在第一行,下移一行后,焦点落在了最后一行
Dim tb As WinForm.Table = e.Form.Controls("生产计划辅表")
Dim t As Table = tb.Table
    Select Case e.KeyCode
        Case Keys.Up
            Syscmd.Row.MoveUp()
        Case Keys.Down
            Syscmd.Row.MoveDown()
        Case Keys.Add
            Syscmd.Row.AddNew()
        Case Keys.Multiply
            Syscmd.Row.AddNews()
        Case Keys.Subtract
            Dim Result As DialogResult
            Result = MessageBox.Show("确认要删除行吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
            If Result = DialogResult.Yes Then               
                With t
                    For i As Integer = .BottomPosition To .TopPosition Step -1
                        .Rows(i).Delete()
                    Next
                End With
            End If
    End Select
End If

--  作者:有点蓝
--  发布时间:2021/9/22 9:30:00
--  
加一句,取消默认行为

e.cancel = True
Select Case e.KeyCode
    Case Keys.Up
        Syscmd.Row.MoveUp()
    Case Keys.Down
        Syscmd.Row.MoveDown()
End Select