zslins 2005-9-12 08:49
请问:怎样声明一个全局的变量
我希望能有一个跨窗体的全局变量,我用Public声明了一个,但为这个窗体声明的Public变量赋值以后,我在其他窗体不能获得那个值,请问我怎样才可以得到所需要的那个值?
Nothing 2005-9-12 10:00
在模块中声明用Public
如果你在FORM1中用Public声明的,在FORM2中使用,请使用Form1.变量名。
Nothing 2005-9-12 11:50
绝对是可以的。
你仔细查查Public语句
对了,声明不能在过程或函数中声明。
你在Form1的头部声明
Public intMyInt as Integer
你就可以在 Form2中使用
Form1.iniMyInt=2
zslins 2005-9-13 08:38
我不是要这样赋值,我希望在1中赋值,在2中调用1那个变量的值
冰点 2005-9-13 10:00
[quote="zslins"]我不是要这样赋值,我希望在1中赋值,在2中调用1那个变量的值[/quote2]
一样的,真不知道你是什么问题!代码贴上来看看!
zslins 2005-9-13 10:50
Form1
Public an As String
Private Sub ProduceOrder_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
an=2
End Sub
Form2
Private Sub InOutApp_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim po As New ProduceOrder
'Form1 的对象
MsgBox(po.an)
End Sub
就是这样,Form2里的不到Form1的那个值
Nothing 2005-9-13 13:32
你重新开了一个窗口,当然没有付值了,如果建立一下新窗口,当然要重新付值了。
zslins 2005-9-13 13:51
那我想这样传值,还有什么方法?
我试过用公共类,也不行啊,麻烦提供个方法来。
Nothing 2005-9-13 14:22
Form1
Public an As String
Public Sub ProduceOrder_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
an=2
End Sub
Form2
Private Sub InOutApp_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim po As New ProduceOrder
'Form1 的对象
[color=red] po.Visible = True[/color:43abfaa218]
MsgBox(po.an)
End Sub
就是这样,Form2里的不到Form1的那个值
注意红色的,也就是说po已经创建了,但没有加载,需要加载才行。
Nothing 2005-9-13 14:27
刚写了个程序试了一下,需要加载才行。
不过还有一个办法,就是在定义的时候直接付值,例如:
Public an As String = "OK"
Nothing 2005-9-13 19:40
你在
Dim po As New ProduceOrder
时,是在过程中声明的,当过程结束后,这个对象就被清除了。
如果你还要其过程中使用这个对象,当然里面的数据就全没有了。
你什么时候需要改变这个变量,直接使用 po.an="我的数据",就可以了。
无语……
zslins 2005-9-14 08:10
哦,谢谢你的帮助,通过你的说明,我想到把声明和赋值的过程倒转就可以得到我需要得那样了。
hanxingyu 2005-12-6 23:37
这个好象建个模块,在里面声名个全局变量就可以了!!