2017-12-01 32 views
0

私はVb.netでゲームを作っています。ボタンを押したときに実行される1つのサブルーチンで2D配列を使用します。そこで、キーが押されたサブルーチンで変数を定義しました。イベントサブルーチン(vb.net)間で変数を渡す方法

Private Sub GameScreen_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress 

    Dim r = 5 - 1 
    Dim GameState(r, r) 

そして、私は別のイベントサブルーチンに

Private Sub GameScreen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    For no = 0 To r 
     For no2 = 0 To r 
      If GameState(no, no2) = 0 Then 
       Counter += 1 
      End If 
     Next 
    Next 

を「R」と「GameState」変数を使用したい、私はそうのようなサブルーチンで別のパラメータを追加しようとすると、しかし、それはしていません作業。

Private Sub GameScreen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs, ByRef GameState(,) As Integer) Handles MyBase.Load 
    For no = 0 To r 
     For no2 = 0 To r 
      If GameState(no, no2) = 0 Then 
       Counter += 1 
      End If 
     Next 
    Next 

答えて

1

イベントハンドラにパラメータを追加することはできません。クラスレベルの変数を使用できます。あなたの変数のクラスレベルを入れて、他の方法と共有してください。

Public Class Test 
    Private r As Integer 

    Public Sub Method() 
     ' You can use r here 
    End Sub 

    Public Sub Method2() 
     ' You can also use r here 
    End Sub 
End Class 
+1

FYIでは、「共有」はVBでは異なる意味を持ちます。 VBのようなクラスレベルの変数を技術的に正確に記述する方法は_field_です。そうでなければ、良い答え:) –

+0

正しい。明確化のおかげで、答えを編集:) – fofik

関連する問題