Foxtable(狐表)用户栏目专家坐堂 → 在一个窗体中,在哪里设置本窗体公用的函数或过程?[已解决]


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

主题:在一个窗体中,在哪里设置本窗体公用的函数或过程?[已解决]

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


加好友 发短信
等级:一尾狐 帖子:400 积分:2486 威望:0 精华:0 注册:2015/1/31 23:19:00
在一个窗体中,在哪里设置本窗体公用的函数或过程?[已解决]  发帖心情 Post By:2017/4/1 19:30:00 [只看该作者]

比如,在一个窗体里,我有一个步骤是通用的,目的是给本窗体各个控件一一对应赋值。
在本窗体的多个按钮中,会使用到这个通用的功能。目前能够实现的方式是在每一个按钮Click事件中,重复复制这些代码,如果可以有地方设置本窗体公用的函数或过程,那么只需要在各个按钮的Click事件中调用此函数(或过程)即可,这样代码右边维护也方便。
其实大家都懂的,我啰嗦这么多,简单说,就是类似vb的私有函数或过程,以前是在代码各个事件之外独立写一个就可以了,ft中好像没有地方写。
[此贴子已经被作者于2017/4/1 20:10:40编辑过]

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


加好友 发短信
等级:一尾狐 帖子:400 积分:2486 威望:0 精华:0 注册:2015/1/31 23:19:00
  发帖心情 Post By:2017/4/1 19:46:00 [只看该作者]

找到答案了:

全局事件

当我们选择窗口的事件页时,会发现除了窗口事件外,还有一组全局事件:

图片点击可在新窗口打开查看

全局事件不是窗口事件,而是控件事件。
全局事件对所有的控件有效,例如你在窗口单击任何一个控件,都会触发全局事件Click。

全局事件的作用有两个:

1、集中编写代码

例如窗口有四个按钮,分别是上一条、下一条、第一条、最末条,假定这四个按钮的名称分别为:btnPrev、btnNext、btnFirst、btnLast
如果按照之前的方法,我们需要分别为这四个按钮编写代码,代码分布在四个位置。
如果采用全局代码,只需在全局事件Click中加入以下代码即可:

Select Case e.Sender.Name
    
Case "btnPrev"
        
CurrentTable.Position = CurrentTable.Position - 1
    
Case "btnNext"
        
CurrentTable.Position = CurrentTable.Position + 1
    
Case "btnFirst"
        
CurrentTable.Position = 0
    
Case "btnLast"
        
CurrentTable.Position = CurrentTable.Rows.Count -1
End
 
Select

很难说分别编写和统一编写哪个更合理,这个纯粹看开发者的习惯。
提示:如果要使用全局事件,最好为每一个控件取一个有意义的名称,例如在维护的过程中,btnNext显然比Button1更容易让人理解。

2、为动态增加的控件编写事件代码

控件本身的事件代码只能在设计窗口的时候编写,所以如果需要在运行过程中动态增加控件,且需要为这些控件编写事件代码,那么就只能使用全局事件了。


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


加好友 发短信
等级:一尾狐 帖子:400 积分:2486 威望:0 精华:0 注册:2015/1/31 23:19:00
  发帖心情 Post By:2017/4/1 19:47:00 [只看该作者]

我在全局事件中写代码即可。
如上述帮助的示例代码,我只要在end select之后写上通用代码即可。

 回到顶部