在表单之间传递对象

时间:2014-04-17 20:30:40

标签: .net vb.net winforms

关于这个主题已经写了很多,但我的问题与我在之前的主题中找到的有点不同。我可以将一个对象传递给第二个表单,但它不能在第二个表单的所有子表单中使用。我需要它。 frm2中的第一个代码块工作,动物名称显示但第二个代码块(cmdSave)不起作用 - 它表示动物未声明。有人可以告诉我我需要更改什么才能让最后一个代码块(cmdSave)工作吗?

表单1代码:

    Dim frm2 As New frm2(animal)
    Frm2.Show()
    Me.Close()

frm2代码:

Public Sub New(ByVal animal As Object)
    InitializeComponent()
    Msgbox.show(animal.animalName)
End sub

Private sub cmdSave
    Msgbox.show(animal.animalName)
End sub

1 个答案:

答案 0 :(得分:1)

我认为您只需要frm2中的(私人)成员持有您传递的动物对象,以便您可以在cmdSave中访问它。

请参阅以下代码,其中m_Animal是私有成员。

frm2代码:

Public Class Form2
    ...
    Private m_Animal as Object

    Public Sub New(ByVal animal As Object)
        InitializeComponent()
        m_Animal = animal
        Msgbox.show(animal.animalName)
    End sub

    Private sub cmdSave
        Msgbox.show(m_Animal.animalName)
    End sub

...
End Class
相关问题