Foxtable(狐表)用户栏目专家坐堂 → [求助]添加控件速度


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

主题:[求助]添加控件速度

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20167 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]添加控件速度  发帖心情 Post By:2017/8/17 16:56:00 [只看该作者]

 老师,
  怎么做能,提高页面添加控件的速度,或许我写的代码过于啰嗦,您给看看除标注颜色之外的代码怎么改能快些?

AfterLoad
Dim tb As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim pg As WinForm.TabPage = tb.SelectedPage


'放置控件

e.Form.StopRedraw
Dim s1 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_01",ControlTypeEnum.SplitContainer)
S1.Dock=5
Dim s2 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_02",ControlTypeEnum.SplitContainer)
S2.Dock=5
Dim s3 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_03",ControlTypeEnum.SplitContainer)
S3.Dock=5
S3.Orientation=0
Dim s4 As WinForm.SplitContainer=e.ForM.CreateControl("SPL_04",ControlTypeEnum.SplitContainer)
S4.Dock=5
S4.Orientation=0
S1.Panel2.AddControl(S2)
S1.Panel1.Collapsed=True
S2.Panel1.AddControl(S3)
S2.Panel2.Collapsed=True
S3.Panel2.AddControl(S4)
S3.Panel1.Collapsed=True
S1.FixedPanel=1
S2.FixedPanel=2
S3.FixedPanel=1
S4.FixedPanel=2
pg.AddControl(S1)'这块是页面添加


Dim zd As New Dictionary(Of String, object)
zd.Add("01",S1.Panel1)
zd.Add("02",S2.Panel2)
zd.Add("03",S3.Panel1)
zd.Add("04",S4.Panel2)
zd.Add("05",S4.Panel1)

Dim DT As DataTable=DataTables("AS002控件")
For Each k As String In zd.Keys '显示所有键及其对应的值
    Dim dr As DataRow=dt.find("编码规则='"& K &"'")                  ’这块将用SQL代替
    If dr IsNot Nothing Then
        Functions.Execute("addc",e,zd(k), dr)                      ‘这块为添加单个控件,可以忽略速度问题
        zd(k).Collapsed=False
    Else
        zd(k).Collapsed=True
    End If
Next


Dim w As Integer=pg.Width
Dim h As Integer=pg.Height
S1.SplitterDistance = 150'必须是添加控件后添加的属性
S2.SplitterDistance = w-150-150'必须是添加控件后添加的属性
S3.SplitterDistance = 60'必须是添加控件后添加的属性
S4.SplitterDistance = h-60-60'必须是添加控件后添加的属性



S1.IsSplitterFixed=True
S2.IsSplitterFixed=True
S3.IsSplitterFixed=True
S4.IsSplitterFixed=True
e.Form.ResumeRedraw
[此贴子已经被作者于2017/8/17 17:09:09编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 18:08:00 [只看该作者]

如果find改成sqlfind会变慢。

 

耗时代码肯定在这里,太重复的动态编译肯定耗时 Functions.Execute("addc",e,zd(k), dr)


 回到顶部