首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2012-01-12 
再次问关于窗体间传值的问题两个窗体form1,form2form1中定义了一个公用变量:publicaasdouble在button1事件

再次问关于窗体间传值的问题
两个窗体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必須是全局的(系統級的)

热点排行