Foxtable(狐表)用户栏目专家坐堂 → [求助]在代码中如何增加控件事件


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

主题:[求助]在代码中如何增加控件事件

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


加好友 发短信
等级:婴狐 帖子:38 积分:367 威望:0 精华:0 注册:2012/10/11 16:00:00
[求助]在代码中如何增加控件事件  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/24 9:13:00 [只看该作者]

直接用全局窗口事件,更加简便




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


加好友 发短信
等级:婴狐 帖子:38 积分:367 威望:0 精华:0 注册:2012/10/11 16:00:00
  发帖心情 Post By: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"按钮没反映。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/24 10:38:00 [只看该作者]

加入代码看看是否触发了事件

 

Forms("frmLogin").Text = e.Sender.Name

msgbox(e.Sender.Name)
Select Case e.Sender.Name
    Case "_btnLogin"
        Forms("frmLogin").Close()
        Forms("frmMain").Open()  ' 另一个窗体
    Case "_btnCancel"
        Syscmd.Project.Exit()  ' 退出Foxtable
End Select


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


加好友 发短信
等级:婴狐 帖子:38 积分:367 威望:0 精华:0 注册:2012/10/11 16:00:00
  发帖心情 Post By:2014/6/24 10:44:00 [只看该作者]

 试过了,但没有触发msgbox函数。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/24 10:46:00 [只看该作者]

上例子

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/24 10:46:00 [只看该作者]

 你这个button1,是怎样添加进去的?

 

 要这样添加 http://www.foxtable.com/help/topics/1409.htm

 


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


加好友 发短信
等级:婴狐 帖子:38 积分:367 威望:0 精华:0 注册:2012/10/11 16:00:00
  发帖心情 Post By:2014/6/24 10:50:00 [只看该作者]

 噢,可能是控件动态增加的方式不对,导致全局事件没能触发。
我是这样动态增加控件的:
Forms("frmLogin").Panel.Controls.Add(btnAdd)


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/24 10:54:00 [只看该作者]

8楼这种方式只能自己添加事件了,要用7楼这种方式才会触发全局事件

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


加好友 发短信
等级:婴狐 帖子:38 积分:367 威望:0 精华:0 注册:2012/10/11 16:00:00
  发帖心情 Post By:2014/6/24 10:58:00 [只看该作者]

 我尝试使用你们的方式动态增加控件,但是我增加的是第三方的控件,跟WinForm.Control的控件类型不兼容。
你们增加控件的方法:e.Form.AddControl(x)
其中x是第三方控件,在编译的守候发生类型不兼容的错误。


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