vb中如何跨窗口调用变量

vb中如何跨窗口调用变量... vb中如何跨窗口调用变量 展开
 我来答
百度网友9bc4eae
2011-01-06 · TA获得超过1394个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:102万
展开全部
主要有三种办法:
1、模块里的公共变量
添加一个模块Module,在模块里声明变量。
Public FormValueA As Long
你可以在任何窗体里直接用FormValueA调用它。
但这个办法最不可靠,只适合在一些非常简单的小程序里使用。
因为这种变量任何窗体、模块都可以改变它的值。如果你在其他的窗体、模块意外地改变了它的值,或者是在不恰当的时机改变它的值,很容易造成程序错误。

2、公共变量
假如有个窗体叫Form1,在窗体里声明一个公共变量FormValueB。
Public FormValueB As Long
那么你在其他窗体里可以用Form1.FormValueB调用它。
这个办法也不可靠,在一些正规程序设计里应该被避免使用。
因为任何一个外部的过程都有可能改变这个值,也容易出现混乱。
但它至少比第一种好一些。

3、给窗体添加属性
假如有个窗体叫Form2,在窗体里声明一个属性FormValueC。
在窗体里声明一个私有变量FormValueD。
Private FormValueD As Long

Public Property Get FormValueC() As Long
'输出属性值
FormValueC = FormValueD
End Property

Public Property Let FormValueC(ByVal vNewValue As Long)
'输入属性值
FormValueD = vNewValue
End Property
你在其他窗体里可以用Form2.FormValueC调用它。
在Form2窗体里,这个属性的值实际保存在FormValueD变量里。
这个办法最复杂,但这是比较正规的做法。
你可以在输入、输出过程中对变量进行一些检测、判断,这样可以避免外界的调用对这个窗体造成干扰。
属性的值有时候未必在窗体里是一个变量。
比如:你写一个登记个人信息的窗体。假如输入了身份证号码,那么生日属性可以从身份证号码里提取。这样,生日属性就不必有个专门的变量存储,类似这样。
Public Property Get Birthday() As Long
'输出属性值
……从身份证号码提取生日……
Birthday = 被提取出来的生日
End Property
表面上看,你调用了Form3.Birthday好像从变量赋值一样获得生日。但实际上这个属性的值是属性的过程算出来的。
拥抱的力量
2011-01-04 · TA获得超过116个赞
知道答主
回答量:50
采纳率:0%
帮助的人:90.2万
展开全部
你好,建议你插入一个模块(Module),然后在模块中声明你的全局变量
例如在Module1中做如下声明
Public version As String

'而赋值过程可以在你的窗体代码中进行,例如
Private Sub Form_Load()
version = "3.1 beta"
End Sub
==================分隔线=======================
如果你一定要在窗体2中调用窗体1的变量,则需要在窗体1将其声明为全局变量:
Public test As String
但是这样做并不会对这个变量赋值
引用方式是:
MsgBox Form1.test
可以看到弹出内容为空
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kevin19900306
2011-01-04 · TA获得超过282个赞
知道答主
回答量:143
采纳率:0%
帮助的人:89.7万
展开全部
写在公有过程或者函数里,也就是public
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式