比如
Dim e = args(0)
Dim pnl = args(1)
Dim code As String = "dim frm = args(0)" & vbcrlf
code &= "dim pnl = args(1)" & vbcrlf
code &= "dim txt " & vbcrlf
Dim drs2 As List (of DataRow)=DataTables("控件类型").Select("c")
If drs2 IsNot Nothing Then
For Each dr2 As DataRow In drs2
code &= "txt=frm.CreateControl(" & """lb_" & dr2("pouttabcolcap") & """, ControlTypeEnum.Label)" & vbcrlf
code &= "pnl.addControl(txt)" & vbcrlf
code &= "txt=frm.CreateControl(""kj_" & dr2("pouttabcolcap") & """, ControlTypeEnum." & dr2("bindingtype") & ")" & vbcrlf
code &= "pnl.addControl(txt)" & vbcrlf
Next
End If
code &= "return txt"
MessageBox.Show(code)
Functions.remove("test")
Functions.Add("test",Code)
Functions.Complie()
Functions.Execute("test", e.form, pnl)
Dim h As Integer = (pnl.height-10) / math.Ceiling(drs2.count / 2)
Dim w As Integer = (pnl.width-10) / 2
Dim i As Integer = 0
Dim lablen As Integer=0
Dim len As Integer = 0
For Each dr3 As DataRow In drs2
Dim lb As WinForm.Label = e.Form.Controls("lb_" & dr3("pouttabcolcap"))
lb.AutoSize = True
lb.text = dr3("pouttabcolcap") & ":"
If lablen<lb.width Then
lablen=lb.width
len= Encoding.default.getbytes(dr3("pouttabcolcap")).length
End If
Next
msgbox(lablen)
For Each dr3 As DataRow In drs2
Dim lb As WinForm.Label = e.Form.Controls("lb_" & dr3("pouttabcolcap"))
Dim kj As WinForm.control = e.Form.Controls("kj_" & dr3("pouttabcolcap"))
kj.BindingField=dr3("pouttabcol")
lb.top = 3+(i\2)*h
lb.left = iif(i Mod 2 = 0, 5, w)
lb.text = dr3("pouttabcolcap").padright(len-dr3("pouttabcolcap").length) & ":"
kj.top = 3+(i\2)*h
kj.left = iif(i Mod 2 = 0, 5, w) + lablen
kj.width=180
i += 1
Next