1

请帮助我了解如何使用类来共享变量。我有 3 个表单和一个类来存储一些变量。在 form1 中,我正在调用 myclass 并设置变量。现在我显示 form2 并在 form2 内部调用 form3

是否可以从我从第一种形式发送的类中获取变量?Myclass 代码如下所示:

    Private _var As String
Public Sub setvar(ByVal var As String)
    _var = pvar
End Sub

Public Function getvar() As String
    Return _var
End Function

从表格1:

       Public class1 As myclass
      class1 = New myclass
       class1.setvar("test")

现在我想调用 class1.getvar 并希望它返回我以第一种形式输入的值。是否可以 ?如果是,请帮助我如何?

谢谢

4

1 回答 1

2

因为您在“class1”变量定义中使用了“Public”访问修饰符,所以您应该能够从可以访问该 Form1 实例的任何地方访问它作为 Form1 上的一个字段。

Dim myString as String = form1.class1.getvar()

不过,不这样做可能会更整洁。

选项
1 如果是我,我更愿意以第一种形式创建 MyClass 的实例,然后将该实例传递给其他形式(可能通过构造函数)。

Public Class Form1

   Private _instance As MyType


   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      _instance = New MyType

      Dim newForm As New Form2(_instance)
   End Sub

End Class 修改 Form2 和 Form3 的 New 方法,接受 MyClass 类型的参数:

Public Class Form2

   Private _instance As MyType

   Sub New(instance As MyType)
      _instance = instance
   End Sub

End Class

然后,当您创建新表单并将其存储在一个私有成员中时,您将传递变量,您可以在第二个表单的代码中的任何位置访问该成员。

选项2 或者,您可以将class1
的定义放入模块中,然后您可以从项目中的任何位置访问它。

于 2012-10-28T23:22:59.523 回答