Board logo

标题: 请问:怎样声明一个全局的变量 [打印本页]

作者: zslins    时间: 2005-9-12 08:49     标题: 请问:怎样声明一个全局的变量

我希望能有一个跨窗体的全局变量,我用Public声明了一个,但为这个窗体声明的Public变量赋值以后,我在其他窗体不能获得那个值,请问我怎样才可以得到所需要的那个值?
作者: Nothing    时间: 2005-9-12 10:00

在模块中声明用Public
如果你在FORM1中用Public声明的,在FORM2中使用,请使用Form1.变量名。
作者: zslins    时间: 2005-9-12 10:11

试过了,但值还是传不过去
作者: 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 的对象
       po.Visible = True[/color:43abfaa218]
       MsgBox(po.an)
  End Sub
就是这样,Form2里的不到Form1的那个值
注意红色的,也就是说po已经创建了,但没有加载,需要加载才行。
作者: Nothing    时间: 2005-9-13 14:27

刚写了个程序试了一下,需要加载才行。
不过还有一个办法,就是在定义的时候直接付值,例如:
Public an As String = "OK"
作者: zslins    时间: 2005-9-13 14:49

不行哦,我的那个值不是固定的,是动态输入的。
作者: 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

这个好象建个模块,在里面声名个全局变量就可以了!!
作者: jannock    时间: 2006-1-22 00:22

你在模块 定义不就行了吗》???




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0