以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码运行慢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115838)

--  作者:有点甜
--  发布时间:2018/3/15 14:57:00
--  

你这个是datacolchanged事件的代码。

 

你打开窗口的时候重置列了?不然怎么会触发事件?

 

你使用sqlCompute就是会慢的,要计算的行数越多、就越慢。大约执行一次要0.5秒,你要执行多少次sqlCompute?


--  作者:有点甜
--  发布时间:2018/3/15 15:05:00
--  

打开窗口的时候执行了什么代码?AfterLoad事件写了什么代码?

 

 


--  作者:客人
--  发布时间:2018/3/15 15:46:00
--  
If e.Form.Width> 0 AndAlso e.Form.height > 0 Then
vars("width") = e.Form.width
vars("height") = e.Form.height
End If
Dim tab As WinForm.TabControl = e.Form.Controls("排产表")
tab.TabPages(1).Visible = False
For Each dr As DataRow In DataTables("权限设置").Select("用户名 = \'" & _username & "\' And 窗口名 =  \'" & e.form.Name & "\'")
    Dim c = e.form.Controls(dr("按钮权限"))
    If typeof c Is winform.Table Then
        c.visible = Not dr("不可见")
        c.Table.allowEdit = Not dr("不可编辑")
    Else
        c.Visible = Not dr("不可见")
        c.Enabled = Not dr("不可编辑")
    End If
Next
If _UserName <> "管理员" Then
    Dim lst As new List(of String)
    Dim str() As String = {"保存","退出","刷新"}
    lst.AddRange(str)
    For Each sit As WinForm.StripItem In e.Form.Strips("工具栏1").Items
        sit.Visible = lst.Contains(sit.Text)
    Next
End If

--  作者:有点甜
--  发布时间:2018/3/15 15:49:00
--  

如果你把afterLoad事件代码删除掉,打开窗口还慢不慢?

 

如果还慢,把sizeChanged等窗口事件代码也删除。

 

如果还慢,就应该是你窗口表加载了太多数据导致的。