以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]在代码中如何增加控件事件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52840) |
-- 作者:goldcicada -- 发布时间:2014/6/24 9:08:00 -- [求助]在代码中如何增加控件事件 例如有2个按钮 其中按钮1单击事件为 private sub button1_click() AddHandle button1.Click {源码...} end sub 其中按钮2想要增加按钮1中事件,如何增加? 是否是这样:AddHandle button2.Click , AddressOf button1.Click 但是这样编译时发生错误。 |
-- 作者:Bin -- 发布时间:2014/6/24 9:13:00 -- 直接用全局窗口事件,更加简便 |
-- 作者:goldcicada -- 发布时间:2014/6/24 10:29:00 -- 尝试过了,但在全局单击事件中没反映。 有个frmLogin的窗体,窗体中有2个按钮,1个按钮名称是"btnLogin",另一个动态创建的按钮名称是"_btnLogin"。 窗体frmLogin中的Click全局代码如下: Forms("frmLogin").Text = e.Sender.Name Select Case e.Sender.Name Case "_btnLogin" Forms("frmLogin").Close() Forms("frmMain").Open() \' 另一个窗体 Case "_btnCancel" Syscmd.Project.Exit() \' 退出Foxtable End Select 运行窗体后,单击"_btnlLogin"按钮没反映。 |
-- 作者:有点甜 -- 发布时间:2014/6/24 10:38:00 -- 加入代码看看是否触发了事件
Forms("frmLogin").Text = e.Sender.Name msgbox(e.Sender.Name) |
-- 作者:goldcicada -- 发布时间:2014/6/24 10:44:00 -- 试过了,但没有触发msgbox函数。 |
-- 作者:Bin -- 发布时间:2014/6/24 10:46:00 -- 上例子 |
-- 作者:有点甜 -- 发布时间:2014/6/24 10:46:00 -- 你这个button1,是怎样添加进去的?
要这样添加 http://www.foxtable.com/help/topics/1409.htm
|
-- 作者:goldcicada -- 发布时间:2014/6/24 10:50:00 -- 噢,可能是控件动态增加的方式不对,导致全局事件没能触发。 我是这样动态增加控件的: Forms("frmLogin").Panel.Controls.Add(btnAdd) |
-- 作者:Bin -- 发布时间:2014/6/24 10:54:00 -- 8楼这种方式只能自己添加事件了,要用7楼这种方式才会触发全局事件 |
-- 作者:goldcicada -- 发布时间:2014/6/24 10:58:00 -- 我尝试使用你们的方式动态增加控件,但是我增加的是第三方的控件,跟WinForm.Control的控件类型不兼容。 你们增加控件的方法:e.Form.AddControl(x) 其中x是第三方控件,在编译的守候发生类型不兼容的错误。 |