再次问关于窗体间传值的有关问题

再次问关于窗体间传值的问题
两个窗体form1,form2
form1中定义了一个公用变量:public   a   as   double
在button1事件中给a付值:a=100
在form2中:dim   frm1   as   new   form1
                    msgbox   frm1.a
结果得到0
发现:如果这样定义a:public   a   as   double   =100
便会得到100
问题是:我想在其他事件中给a赋值,而不是在定义其为公用变量时就为其付值,这可怎么办呢?

------解决方案--------------------
dim frm1 as new form1

这句话产生窗体Form1的一个新的引用frm1,和已经存在的Form1是不同的引用。在Form1中触发了button1事件,但在这个新引用frm1中其实还没有触发,所以这个a还没有赋值。但是您如果将a的赋值放在事件外,那么在新建引用时a就已经被赋值了。

其实您想在窗体间传值的话,可以把变量放在模块(Module)中,声明为Public,这样所有窗体都能调用,但要小心不要和窗体中的变量重名了。

另外就是您在引用其他窗体中的内容时不需要

dim frm1 as new form1

这样了。只需写

Form1.

加上这个点后,您可以引用的内容就可以通过intellesence显示出来,很方便的。
------解决方案--------------------
樓主如果要a有值
那要在form1初化後給a賦值且a必須是全局的(系統級的)