以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]动态窗口的afterload添加控件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114750)

--  作者:blsu33
--  发布时间:2018/2/21 10:30:00
--  [求助]动态窗口的afterload添加控件
老师,
   如例子,怎么能在afterload添加控件
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2017.12.31.1
错误所在事件:自定义函数za_nb_childform_afterload
详细错误信息:
Exception has been thrown by the target of an invocation.
Public member \'Form\' on type \'EventArgs\' not found.


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:afterload.foxdb




--  作者:blsu33
--  发布时间:2018/2/21 10:36:00
--  
主要问题是,
不知道如何引用这个动态的窗口,例如:
Dim frm As New Windows.Forms.Form  生成的窗口名字为窗口1,在狐表中其他的地方引用窗口1 用Forms("窗口1")好像不可以。

--  作者:有点甜
--  发布时间: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)


--  作者:blsu33
--  发布时间:2018/2/21 15:00:00
--  
楼上代码 可以实现 疑问是 为啥不是 Button1
Dim frm As WinForm.Form = Forms("Button1")

--  作者:有点甜
--  发布时间:2018/2/21 17:04:00
--  

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

 

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


--  作者:blsu33
--  发布时间:2018/2/21 21:19:00
--  
2楼 
关于定义 引用这个窗口里的控件,应该怎么写呢?

例如 添加好的了控件 

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

--  作者:有点甜
--  发布时间:2018/2/21 21:22:00
--  
以下是引用blsu33在2018/2/21 21:19:00的发言:
2楼 
关于定义 引用这个窗口里的控件,应该怎么写呢?

 

1、可以用vars变量存放;

 

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


--  作者:blsu33
--  发布时间:2018/2/21 21:24:00
--  
老师,
  能给演示下吗,您受累了

--  作者:有点甜
--  发布时间:2018/2/21 21:25:00
--  

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


--  作者:有点甜
--  发布时间:2018/2/21 21:28:00
--  
以下是引用blsu33在2018/2/21 21:19:00的发言:

例如 添加好的了控件 

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

 

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