我有四个Form.I想在visual basic6代码中将一个Form数据传输到另一个活动Form(表示Form2数据到Form3,Form2 Data到Form4)。但只有Form3显示传输数据。这是Form2代码........
Private Sub Command1_Click()
'suppose if we want to get data from Form2 and transfer to Form3
' if Form2 and Form3 is Active Form
If Screen.ActiveForm.Name = "Form1" Or Screen.ActiveForm.Name = "Form2" Or Screen.ActiveForm.Name = "Form3" Then
Dim i As Integer
For i = 0 To Form2.List1.ListCount - 1
Form3.List1.AddItem Form2.List1.List(i)
Next i
Form3.Show
Unload Me
'suppose if we want to get data from Form2 and transfer to Form4
' if Form2 and Form4 is Active Form
ElseIf Screen.ActiveForm.Name = "Form1" Or Screen.ActiveForm.Name = "Form2" Or Screen.ActiveForm.Name = "Form4" Then
Dim j As Integer
For j = 0 To Form2.List1.ListCount - 1
Form4.List1.AddItem Form2.List1.List(j)
Next j
Form4.Show
Unload Me
End If
End Sub
请帮我解决这个问题。谢谢
答案 0 :(得分:0)
您的问题与您的If
声明有关。您的第一个声明说,如果当前屏幕是Form1,Form2或Form3,则将数据从Form2传输到Form3。否则,如果它是Form1,Form2(它不会,对吧?)或Form4,则将数据从Form2传输到Form4。
所以,你的逻辑说的是你将数据传输到Form4的唯一方法是Form4是活动形式。根据您的评论,您说您正在按Form3上的“获取数据”按钮。当您这样做时,Form3是活动形式。这意味着您的第一个If
条件得到满足。事实上,唯一不满足的是Form4是活动形式。
您需要了解代码的这一行:
ElseIf Screen.ActiveForm.Name = "Form1" Or Screen.ActiveForm.Name = "Form2" Or Screen.ActiveForm.Name = "Form4" Then
与此完全相同:
ElseIf Screen.ActiveForm.Name = "Form4" Then
其中,因为您只有四种形式,所以完全相同:
Else
如果你理解这一点,你会发现你遇到问题的原因,请记住你的第一个If
块只会填充Form3。