Vb.net 为什么我引用另一个类的方式会改变.Value控件的行为?

Vb.net 为什么我引用另一个类的方式会改变.Value控件的行为?,vb.net,visual-studio-2008,class,reference,Vb.net,Visual Studio 2008,Class,Reference,在我的代码中,我使用了两个类。一个包含UI表单,另一个包含 写入文件的方法。在编码过程中,我发现了一些行为 我不明白。下面的代码显示了(我认为是什么) 相关部分。为了简单起见,文件写入部分由MsgBox代替 我有一种形式的以下控件: NumericUpDown 按钮 使用以下类和方法: Public Class One Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

在我的代码中,我使用了两个类。一个包含UI表单,另一个包含 写入文件的方法。在编码过程中,我发现了一些行为 我不明白。下面的代码显示了(我认为是什么) 相关部分。为了简单起见,文件写入部分由
MsgBox
代替

我有一种形式的以下控件:

NumericUpDown
按钮

使用以下类和方法:

Public Class One
    Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
        Dim t As New Two
        t.Show()
    End Sub
End Class

Public Class Two
    Public Sub Show()
        Dim o As New One
        MsgBox(o.NumericUpDown.Value)
    End Sub
End Class
现在,当我单击
按钮时,会显示默认值
NumericUpDown.Value
。 当我调整此值并再次单击按钮时,旧的默认值 不断显示

在下面的代码中,我删除了零件
Dim o作为新零件
,我只使用
One
引用另一个类。因此:

Public Class Two
    Public Sub Show()
        MsgBox(One.NumericUpDown.Value)
    End Sub
End Class
现在一切都正常了。我单击默认的
按钮

NumericUpDown.Value
显示。我调整值,单击
按钮
,调整后的 价值显示

Dim o分配为新的
如何改变这种行为


这是我用vb.net编写代码的第一周,所以我可能会做一些没有意义的事情,但对我来说很有用。我将Dim o作为新的
放在实际代码中的唯一原因是,我不必每次引用类时都键入“One”,而只需键入“o”。显然,这不是一个好办法,但我很想知道为什么。

尝试执行以下代码:

Public Class One
    Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
        Dim t As New Two
        t.Show(Me)
    End Sub
End Class

Public Class Two
    Public Sub Show(ByVal o As One)
        MsgBox(o.NumericUpDown.Value)
    End Sub
End Class
当您调用
Dim o as New One
时,您正在创建表单的新实例,因此它不会显示当前表单实例的值