VB窗口之间的数据怎么传递?

比如计算1+1=?
现有3个窗口,Form1,Form2,Form3,在Form1里按下按钮 "计算" 弹出Form2,在Form2里的Textbox填写信息算式“1+1”,按下按钮“开始计算”,弹出Form3,显示“1+1=2”.
其中数据怎么传递,怎么实现?
补充:计算1+1=2必须在Form1中进行,然后再用form3显示结果~

1、在模块文件(Module)中声明一个全局公共变量,然后在其他窗体中就可以通过这个变量来存取数据了,如:
在模块文件中声明变量a
Public a as string
在Form1中给a赋值
a="您好!"
在Form2中读取a
msgbox a

2、在要传递数据的那个窗口声明一个模块级的全局变量,然后在其他窗体中就可以通过这个变量(要加上窗体名的引用)来存取数据了,如:
在Form1中声明变量a及赋值
Public a As String
Private Sub Form_Load()
a = "你好!"
End Sub
在Form2中读取a
msgbox Form1.a

3、利用各个窗体中的控件属性来传递数据,如:
让Form2的Label1的显示内容和Form1的Label1一样
Form2.Label1.Caption = Form1.Label1.Caption
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-08
在模块里面定义一个公共变量,如:
public tmp

在form1的按钮单击代码中写
Private Sub CommandButton1_Click()
tmp = Replace((Me.TextBox1.Value), " ", "")
Dim a(100)
n = 1
For i = 1 To Len(tmp)
a(n) = Val(Mid(tmp, i, 1))
n = n + 1
Next
For j = 1 To UBound(a)
kk = kk + a(j)
Next
tmp = kk
Unload Me
Form3.Show
End Sub
在form3中的代码中写入:

Private Sub UserForm_Initialize()
Me.TextBox1.Value = tmp
End Sub

即可传值.
第2个回答  2011-04-08
貌似能直接传递吧 只要是控件就行 比如你把 form1里面text控件的数据传递给form2 前提 form1里的text控件必须有数据 那就直接调用 在form2里调用方法为 form2.text1.text
提供程序
form1里写:
Private Sub Command1_Click()
Form2.Show
Unload Me
End Sub

Private Sub Form_Load()
Command1.Caption = "计算"
End Sub
form2里写:
Private Sub Command1_Click()
Form3.Show
Unload Me
End Sub

Private Sub Form_Load()
Command1.Caption = "开始计算"
End Sub
form3里写:
Private Sub Form_Load()
If Mid(Form2.Text1.Text, 2, 1) = "+" Then
Text1.Text = Int(Mid(Form2.Text1.Text, 1, 1)) + Int(Mid(Form2.Text1.Text, 3, 1))
End If
End Sub
第3个回答  2011-04-08
使用一个公共变量传递,或者做一个公共的函数。
第4个回答  2011-04-08
有几种方式呀。
全局变量、局部变量、文件等都能实现啊。
相似回答