1

クラスを使用して変数を共有する方法を理解するのを手伝ってください。いくつかの変数を格納するための 3 つのフォームと 1 つのクラスがあります。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 を呼び出して、最初のフォームに入力した値を返すようにします。出来ますか ?はいの場合、どのように私を助けてください?

ありがとう

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 番目のフォームのコードのどこからでもアクセスできるプライベート メンバーに格納します。

オプション 2
別の方法として、class1 の定義をモジュールに配置して、プロジェクト内の任意の場所からアクセスすることもできます。

于 2012-10-28T23:22:59.523 に答える