Foxtable(狐表)用户栏目专家坐堂 → 动态控件


  共有2161人关注过本帖树形打印复制链接

主题:动态控件

帅哥哟,离线,有人找我吗?
wgqcool
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
动态控件  发帖心情 Post By:2021/5/14 19:43:00 [只看该作者]

1、在全局代码中加入用于处理Button控件的Click事件的过程:

Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  
MessageBox.Show("这是自定义事件!")
End
Sub

提示:过程必须是Public的,否则无法调用。

2、新建一个窗口,在窗口的AfterLoad事件加入代码:

Dim ct As New System.Windows.Forms.Button
ct
.Text = "我的按钮"
e
.Form.Panel.Controls.Add(ct)
AddHandler
ct.Click, AddressOf Button1_Click



想用这个方法来动态添加按键,这样配合全局代码比用窗口的全局事件效率要高很多,但是这方法动态添加的按键,只能在form的的panel上添加,我的form上有个SplitContainer1,SplitContainer1里面又有个panel2控件,我想把这个按钮加在panel2里面,应该怎么写代码?


 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2021/5/14 19:49:00 [只看该作者]

用e.Form.Controls("Panel2").AddControl(ct)替换上面的e.Form.Panel.Controls.Add(ct)会报错。

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,产品目录,Button3,Click
详细错误信息:
方法调用失败,因为“Public Sub AddControl(ctl As Foxtable.WinForm.Control)”不能用这些参数调用:
    与参数“ctl”匹配的参数无法从“Button”转换为“Control”。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106298 积分:540619 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/15 8:49:00 [只看该作者]

e.Form.Controls("Panel2").basecontrol.AddControl(ct)

 回到顶部
帅哥哟,离线,有人找我吗?
wgqcool
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2021/5/17 19:21:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1234431.png
图片点击可在新窗口打开查看

按上面代码出现如下报错:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,窗口1,AfterLoad
详细错误信息:
未找到类型“O000 0 0”的公共成员“Addcontrol”。
[此贴子已经被作者于2021/5/17 19:21:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106298 积分:540619 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 20:36:00 [只看该作者]

e.Form.Controls("Panel2").basecontrol.Controls.Add(ct)

 回到顶部