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("controlgzid is not null") 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 / 4) Dim w As Integer = (pnl.width-10) / 4 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\4)*h lb.left = iif(i Mod 4 = 0, 5, w*(i Mod 4)) lb.text = dr3("pouttabcolcap").padright(len-dr3("pouttabcolcap").length) & ":" kj.top = 3+(i\4)*h kj.left = iif(i Mod 4 = 0, 5, w*(i Mod 4)) + lablen kj.width=50 i += 1 Next
|