视觉基本共享变量与类?

时间:2012-10-28 22:59:10

标签: vb.net

请帮助我了解如何使用类来共享变量。 我有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
来自form1的

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

现在我想调用class1.getvar,我希望它返回我在第一个表单中输入的值。可能吗 ?如果有,请帮我怎么做?

谢谢

1 个答案:

答案 0 :(得分:1)

因为您在'class1'变量定义中使用了'Public'访问修饰符,所以您应该能够从有权访问Form1实例的任何地方将其作为Form1上的字段进行访问。

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

尽管如此,这可能不是那么简单。

OPTION1
如果是我,我宁愿在第一个表单中创建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

结束课程 修改Form2和Form3的New方法以接受MyClass类型的参数:

Public Class Form2

   Private _instance As MyType

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

End Class

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

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