以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 关于使用静态变量  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46689)

--  作者:bahamute
--  发布时间:2014/2/27 9:30:00
--  [求助] 关于使用静态变量
在窗体1的afterload中声明静态变量 
Static ibs As Integer =1 
主要用于记录窗体1上的按钮A被点击的奇偶次数,但在该按钮的click事件中引用变量ibs,会提示ibs未声明!

是我声明的位置不对吗?还是说只能全局变量?



[此贴子已经被作者于2014-2-27 9:35:54编辑过]

--  作者:Bin
--  发布时间:2014/2/27 9:32:00
--  
只能用全局变量
--  作者:blackzhu
--  发布时间:2014/2/27 9:38:00
--  
你把这个变量放窗口事件 怎么记录呢


--  作者:bahamute
--  发布时间:2014/2/27 9:38:00
--  
就是说只限于窗体内使用的变量,也只能全局吗?是这个意思吧?
--  作者:狐狸爸爸
--  发布时间:2014/2/27 9:39:00
--  

窗口级别的方法与变量

 

Foxtable提供了内部函数全局变量,用于在不同的事件之间复用代码和数据。

一些方法和变量,可能并不需要全局共享,例如在设计窗口的时候,某些方法和变量只需在本窗口共享,但是Foxtable并没有提供窗口级别的方法和变量,不过我们可以用变通的方法来实现。

我们可以在窗口中加入一个按钮(Button),将其“可见”属性设置为False,并将需要在该窗口中重复调用的方法代码,写在此按钮Clik的事件中。

窗口中的其它事件可以下面的方式执行此段代码:

e.Controls("按钮名称").PerformClick()

 

这样就间接实现了窗口级的方法共享。

 

同样我们可以在窗口中加入一个或多个隐藏的Label,利用其Text属性作为窗口级别的变量。

 

当然你愿意的话,也可以全部采用内部函数全局变量,这没有什么不好,看你的习惯,本节只是为了给大家多一个选择。


--  作者:bahamute
--  发布时间:2014/2/27 9:45:00
--  
我本来认为只要窗体没有关闭,变量应该是有效的,可以被调用,看来理解有误。
--  作者:逛逛
--  发布时间:2014/2/27 10:02:00
--  

凑一脚

 

 

还有一种方法

 

窗口初始

Dim a As Integer
e.Form.panel.tag = a

 

 

调用时
Dim a As Integer = e.Form.panel.tag


--  作者:lsy
--  发布时间:2014/2/27 10:20:00
--  
俺就喜欢偷懒:用e.Form.Text传来传去。
--  作者:逛逛
--  发布时间:2014/2/27 10:38:00
--  
我最喜欢用TextBox来传递,既能传值,又有事件