以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:动态创建CreateControl后如何设置其click代码? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107103) |
-- 作者:huangxueyao -- 发布时间:2017/9/21 11:35:00 -- 求助:动态创建CreateControl后如何设置其click代码? 用CreateControl创建了一个button,然后想要设置的button的click方法里面的代码,应该怎么操作? |
-- 作者:有点甜 -- 发布时间:2017/9/21 12:36:00 -- 把代码写到窗口的click事件里
如果要动态编译代码,参考 http://www.foxtable.com/webhelp/scr/1487.htm
|
-- 作者:huangxueyao -- 发布时间:2017/9/21 12:50:00 -- 我是在一个窗口中动态生成多个button控件的,所以直接给窗口加click不合适。 \'判断分拣大类 If vars("分拣类别")="蔬菜" Then \'建立符合状态的订单集合 Dim drs1 As List(of DataRow) drs1 = DataTables("订单表").Select("订单状态 = \'PMC已确认\'") Dim x As Integer = 1 \'名称后缀初始值 Dim y As Integer = 20 \'水平位置初始值 Dim z As Integer = 10 \'垂直位置初始值 Dim k As Single = e.Form.Controls("SplitContainer1").Panel2.Width \'分栏的宽度 \'遍历订单 For Each dr1 As DataRow In drs1 \'查询对应的大类 Dim dr1_1 As DataRow = DataTables("基础资料表").find("对应大类 = \'" & dr1("物料类别") & "\'") \'如果不符合,跳过 If dr1_1("分拣部") <> "蔬菜" Then Continue For \'如果符合 Else \'遍历控件判断是否已存在对应的控件 Dim n As Integer = 0 \'定义变量判断是否存在对应控件 For Each c As WinForm.Control In e.Form.Controls If Typeof c Is WinForm.Button Then \'判断控件是否是文本框 Dim b As WinForm.Button = c \'使用特定类型的变量引用控件 If b.Text = dr1("物料名称") n = 1 End If End If Next \'如果存在,则跳过 If n = 1 Then Continue For Else \'如果不存在,则新建控件 Dim but As WinForm.Button but = e.Form.CreateControl("Button" & x , ControlTypeEnum.Button) x=x+1 If y + 200 > k Then \'这里的200等于宽度加Y的初始值20 y = 20 z = z + 70 but.SetBounds(y, z, 180, 60) \'统一设置位置与大小(水平,垂直,宽度,高度) Else but.SetBounds(y, z, 180, 60) \'统一设置位置与大小(水平,垂直,宽度,高度) y = y+200 End If but.Text = dr1("物料名称") \'显示内容 but.ReadOnly = True \'设置为只读 but.TextAlign = HorizontalAlignment.Center \'对齐方式 but.Font = New Font("宋体",16) but.BackColor = Color.white but.FlatStyle = FlatStyle.Flat but.BorderSize = 2 but.BorderColor = Color.red \'but.Enabled = False e.Form.Controls("SplitContainer1").Panel2.AddControl(but) End If End If Next End If 但是每个button的click事件代码是一样的,都是点击打开某个窗口,请问是否可以通过自定义函数来实现? 具体代码应该怎么写?
|
-- 作者:有点甜 -- 发布时间:2017/9/21 13:23:00 -- 你在click事件可以判断控件的名字,然后实现你的操作,如
If e.Sender.Name = "Button1" Then
ElseIf e.Sender.Name Like = "Button*" then
End If |