-- 作者:程兴刚
-- 发布时间:2009/4/12 14:03:00
-- [分享] 动态管理文本框等控件(动态设置其他控件方法雷同)
代码执行功能功能:
根据不同的形状钢筋代码,添加不同的数量的文本框控件,方便用户录入数据,这样的动态管理,省区很多判断和避免找不到控件(文本框)的错误提示,方便其他按钮动态检测文本框是否输入值并动态根据文本框填写到表格字段,去掉文本框与字段的绑定,可以有效防止用户从窗口误修改或误删除字段的内容。通过不同的控件事件,与我的另一帖子的代码配合使用,事半功倍!
...........前面部分代码略
Dim Multi As String = "A|B|C|D|E|F|G|H|I|JD1|JD2" \'1~8行代码判断本行所知名称的控件是否存在,如果是,删除它们 Dim Values() as String Values = Multi.split("|") For Index As Integer = 0 To Values.Length - 1 if e.Form.ExistControl(Values(Index)) = true e.Form.RemoveControl(Values(Index)) end if Next Dim p As WinForm.Painter = e.Form.Controls("Painter100") \'9~13行代码,清空绘图板Painter100的所有内容并设置背景颜色,并指定绘图时的画笔颜色和画笔宽度 Dim g As Graphics = p.Graphics Dim pn As New Pen(Color.red,3) \'指定画笔颜色和画笔宽度 g.Clear(Color.LightSeaGreen) \'清除所有内容,并指定背景颜色 p.Repaint() \'输出图形到绘图板 if Vars("钢筋代码") = "1001" \'判断当前代码如果为1001,为窗口增加名称为A的文本框(因为代码为1001的钢筋仅需要名称为A的文本框,只需要一个有效参数),并由以下的指定该文本框要加入的容器(这里是一个面板控件)、位置、属性和加入的容器 Dim A As WinForm.TextBox A = e.Form.CreateControl("A", ControlTypeEnum.TextBox) A.Left =82 A.Top =54 A.Width = 36 A.Height =16 e.Form.Controls("Panel1").AddControl(A) A.BorderStyle = System.Windows.Forms.BorderStyle.None A.TextAlign=System.Windows.Forms.HorizontalAlignment.Center A.TopMost=true p = e.Form.Controls("Painter100") \'以下代码为绘图板Painter100绘制代码为1001的钢筋形状的图例(包括线条长度、宽度、位置等属性) g = p.Graphics g.Clear(Color.LightSeaGreen) \'清除所有内容,并将背景颜色设为黑色 g.DrawLine(pn,20,70,172,70) \'指定图形类型为直线画笔颜色和位置 p.Repaint() \'输出图形到绘图板 end if if Vars("钢筋代码") = "2001" \'判断当前代码如果为2001,为窗口增加名称为A的文本框(因为代码为2001的钢筋仅需要名称为A、B的文本框,只需要二个有效参数),并由以下的代码指定该文本框要加入的容器(这里是一个面板控件)、位置、属性和加入的容器 Dim A As WinForm.TextBox A = e.Form.CreateControl("A", ControlTypeEnum.TextBox) A.Left =86 A.Top =54 A.Width = 38 A.Height =16 e.Form.Controls("Panel1").AddControl(A) A.BorderStyle = System.Windows.Forms.BorderStyle.None A.TextAlign=System.Windows.Forms.HorizontalAlignment.Center A.TopMost=true Dim B As WinForm.TextBox B = e.Form.CreateControl("B", ControlTypeEnum.TextBox) B.Left =9 B.Top =52 B.Width = 38 B.Height =16 e.Form.Controls("Panel1").AddControl(B) B.BorderStyle = System.Windows.Forms.BorderStyle.None B.TextAlign=System.Windows.Forms.HorizontalAlignment.Center B.TopMost=true p = e.Form.Controls("Painter100") \'以下代码为绘图板Painter100绘制代码为1001的钢筋形状的图例(包括线条长度、宽度、位置等属性)
g = p.Graphics g.Clear(Color.LightSeaGreen) \'清除所有内容,并将背景颜色设为黑色 g.DrawLine(pn,48,42,48,70) \'指定图形类型为直线画笔颜色和位置 g.DrawLine(pn,48,69,172,69) \'指定图形类型为直线画笔颜色和位置 p.Repaint() \'输出图形到绘图板 end if ...........后面部分代码略
[此贴子已经被作者于2009-4-12 17:40:38编辑过]
|