16 12
发新话题
打印

请问:怎样声明一个全局的变量

请问:怎样声明一个全局的变量

我希望能有一个跨窗体的全局变量,我用Public声明了一个,但为这个窗体声明的Public变量赋值以后,我在其他窗体不能获得那个值,请问我怎样才可以得到所需要的那个值?

TOP

在模块中声明用Public
如果你在FORM1中用Public声明的,在FORM2中使用,请使用Form1.变量名。

TOP

试过了,但值还是传不过去

TOP

绝对是可以的。
你仔细查查Public语句
对了,声明不能在过程或函数中声明。
你在Form1的头部声明
Public intMyInt as Integer

你就可以在 Form2中使用
Form1.iniMyInt=2

TOP

我不是要这样赋值,我希望在1中赋值,在2中调用1那个变量的值

TOP

[quote="zslins"]我不是要这样赋值,我希望在1中赋值,在2中调用1那个变量的值[/quote2]

一样的,真不知道你是什么问题!代码贴上来看看!

TOP

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的那个值

TOP

你重新开了一个窗口,当然没有付值了,如果建立一下新窗口,当然要重新付值了。

TOP

那我想这样传值,还有什么方法?
我试过用公共类,也不行啊,麻烦提供个方法来。

TOP

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已经创建了,但没有加载,需要加载才行。

TOP

 16 12
发新话题