以文本方式查看主题 - 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=105360) |
-- 作者:blsu33 -- 发布时间: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编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/8/17 18:08:00 -- 如果find改成sqlfind会变慢。
耗时代码肯定在这里,太重复的动态编译肯定耗时 Functions.Execute("addc",e,zd(k), dr) |