老师,
怎么做能,提高页面添加控件的速度,或许我写的代码过于啰嗦,您给看看除标注颜色之外的代码怎么改能快些?
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编辑过]