Foxtable(狐表)用户栏目专家坐堂 → [求助]动态窗口的afterload添加控件


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

主题:[求助]动态窗口的afterload添加控件

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 11:33:00 [显示全部帖子]

代码改成这样

 

Dim sender As object=args(0)
Dim e As object=args(1)
Dim frm As WinForm.Form = Forms("窗口1")
Dim btn As WinForm.Button=frm.CreateControl("btn1",ControlTypeEnum.Button)
btn.text="1111"
sender.controls.add(btn.basecontrol)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 17:04:00 [显示全部帖子]

forms("xxx") 只能引用foxtable里面用菜单创建的窗口;你自己new出来的窗口,不能这样引用。

 

如果你要用 CreateControl 的方式添加控件,你只能在某一个foxtable设计的窗口里创建,然后添加到new的窗口里。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 21:22:00 [显示全部帖子]

以下是引用blsu33在2018/2/21 21:19:00的发言:
2楼 
关于定义 引用这个窗口里的控件,应该怎么写呢?

 

1、可以用vars变量存放;

 

2、可以用一个public字典变量记录,然后直接根据名字引用。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 21:25:00 [显示全部帖子]

你生成的时候,用一个全局变量记录起来,想什么时候引用都可以啊。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 21:28:00 [显示全部帖子]

以下是引用blsu33在2018/2/21 21:19:00的发言:

例如 添加好的了控件 

需要更改绑定 或更改属性 
[此贴子已经被作者于2018/2/21 21:21:40编辑过]

 

比如 frm.controls("控件名")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 22:08:00 [显示全部帖子]

Dim frm As New Windows.Forms.form
vars("abc") = frm


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 22:48:00 [显示全部帖子]

1、如果要用CreateControl,必须用foxtable设计的窗口,才能使用啊

 

2、如果要直接用new出来的窗口添加控件,要这样添加控件

 

Dim ct As New Windows.Forms.Label

ct.name = "test"
ct.Dock = Windows.Forms.DockStyle.Fill
ct.Text = "test"
frm.Controls.Add(ct)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 23:03:00 [显示全部帖子]

1、你CreateControl的控件,必须add到frm,才能用frm.control进行引用啊;

 

2、如果你写frm.addcontrol,那你可以用frm.controls引用,但如果你写sender.controls.add,那你是把控件添加到sender这个窗口了啊。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/21 23:24:00 [显示全部帖子]

new一个panel,命名为a;new一个button,命名为b

 

然后,直接写

 

frm.controls.add(a)

frm.controls.add(b)

 

或者

 

a.controls.add(b)

frm.contrls.add(a)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/22 8:57:00 [显示全部帖子]

回复19楼,删除frm.controls("xxx")的代码

 回到顶部
总数 20 1 2 下一页