以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]上移行与下移行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=160494)

--  作者:2425004926
--  发布时间:2021/2/4 15:27:00
--  [求助]上移行与下移行
上移行和下移行,一次移很多行,为什么速度那么慢,要等好长时间,而直接用系统里的表上移和下移速度却非常快?

 With Tables(e.form.name  & "_Table1")
    Select Case e.Sender.Name
        Case "ButtonMoveUp"       \'上移行
            .StopRedraw
            Dim i As Integer
            Dim i1 As Integer = .TopRow                                    \'最上行位置
            Dim i2 As Integer = .BottomRow                                 \'最末行位置
            If i1 >= 1 Then                                                \'如不判断,最上一行会往下跑
                For i = i1 To i2
                    .Rows(i).Move(i-1)
                Next
                .Select(i1-1,.Cols(.colsel).index,i2-1,.Cols(.colsel).index)
            Else
                .Select(i1,.Cols(.colsel).index,i2,.Cols(.colsel).index)
            End If
            .ResumeRedraw
            .Focus
            .Save()
        Case "ButtonMoveDown"     \'下移行
            .StopRedraw
            Dim i As Integer
            Dim i1 As Integer = .TopRow                                    \'最上行位置
            Dim i2 As Integer = .BottomRow                                 \'最末行位置
            If i2 <= .Rows.Count -2 Then
                For i = i2 To i1 Step -1
                    .Rows(i).Move(i+1)
                Next
                .Select(i1+1,.Cols(.colsel).index,i2+1,.Cols(.colsel).index)
            Else
                .Select(i1,.Cols(.colsel).index,i2,.Cols(.colsel).index)
            End If
            .ResumeRedraw
            .Focus
            .Save()
--  作者:有点蓝
--  发布时间:2021/2/4 15:31:00
--  
估计是有表事件,表达式计算等影响。把这个表所有事件去掉测试慢不慢?
--  作者:2425004926
--  发布时间:2021/2/4 16:03:00
--  
我看了,表里没有任何事件
我把      \'.Focus
            \'.Save()
删除不用,速度确实快了