VB两个窗口间传递数据望解答
我在VB中新建了两个FormForm1代码如下:PublicaAsInteger'把a定义在通用区PrivateSubForm_Load()a=5EndSubForm2代...
我在VB中新建了两个Form
Form1代码如下:
Public a As Integer '把a定义在通用区
Private Sub Form_Load()
a = 5
End Sub
Form2代码如下(只添加了一个按钮):
Private Sub Command1_Click()
MsgBox Form1.a '通过Form.变量访问
End Sub
将Form2设置为主窗口
运行后发现弹出的消息窗口时0,不是5
通过调价模块将Public a As Integer '把a定义在通用区剪切到模块里定义成全局变量,通过
MsgBox a ,发现得到的也是0,而不是5,真不知道是哪里的问题,望大家解答 展开
Form1代码如下:
Public a As Integer '把a定义在通用区
Private Sub Form_Load()
a = 5
End Sub
Form2代码如下(只添加了一个按钮):
Private Sub Command1_Click()
MsgBox Form1.a '通过Form.变量访问
End Sub
将Form2设置为主窗口
运行后发现弹出的消息窗口时0,不是5
通过调价模块将Public a As Integer '把a定义在通用区剪切到模块里定义成全局变量,通过
MsgBox a ,发现得到的也是0,而不是5,真不知道是哪里的问题,望大家解答 展开
4个回答
展开全部
Form_Load事件只有在相应窗体被调入内存(即Load)后才会触发的,你的Form2是主窗口,而Form1始终没有Load,所以Form1的Form_Load事件是不会运行的,因此Form1.a的值就始终是0不是5喽。改成这样即可:
Private Sub Command1_Click()
Load Form1
MsgBox Form1.a '通过Form.变量访问
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定是0,因为你是在Form1赋值,而将Form2设置为主窗口,这时,变量a没有赋值,当然=0了。
不论是程序级变量、模块级变量、过程级变量必须首先赋值才能使用的。
不论是程序级变量、模块级变量、过程级变量必须首先赋值才能使用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
目测问题原因为:
a=5是在Form1的Form_Load()事件中执行的。megbox a时,这个事件应该没有执行过吧!
a=5是在Form1的Form_Load()事件中执行的。megbox a时,这个事件应该没有执行过吧!
追问
那该怎么做才行呢? LOAD不是一开始就执行吗?
追答
Form2的Form_Load()的事件一开始就执行,Form1的Form_Load()事件没有执行过。
你可以在From2的Form_Load()的事件中修改Form1.a。
From2的代码如下:
Private Sub Command1_Click()
MsgBox Form1.a
End Sub
Private Sub Form_Load()
Form1.a = 5
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询