通过Visual Basic6将数据从一个表单传输到另一个表单

时间:2018-02-22 02:46:08

标签: vb6

我有四个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

请帮我解决这个问题。谢谢

1 个答案:

答案 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。