2017-10-16 12 views
-1

Iまし公共の配列を宣言したフォーム、別のフォームに配列を渡す(vb.net)

Public requestedqueue() As Integer 

私はどのようたForm3に配列を渡し、そこに他の計算を実行しますが、したいですか?私が実行して新しいフォームでそれを表示しようとした

public newrequest() As Integer 
newrequest = form2.requestedqueue 

: 私は(新しいフォームで)やってみました

TextBox1.Text = = String.Join(",",form2.newrequest) 

をしかし、私はたForm3に実行するたびに、それはnewrequestがnullであると言うでしょう。 しかし、これはform2の配列として表示されるので、混乱します。

+1

にごForm3.ArrayParameterコードを変更することができ、これがあり問題を再現するのに十分な情報がありません。あなたは実際に配列に値を設定しますか?最初に 'Form2'をどうやって開きますか? –

答えて

0

は、私はあなたが

によって何を意味するかわからないんだけど、しかし、あなたはrequestedqueueの値にそれが等しくなるように設定しているので、それは

しかしnewrequestNothingになりますForm2の中のアレイとして示しています配列に値を設定するまではNothingです。

Public requestedqueue() As Integer = {1, 2, 3}があった場合、エラーは発生しません。

0

データをフォームに渡す方法の1つは、2番目のフォームにプロパティを追加することです。

Form3というフォームがあり、これがフォームのコードであるとします。コードでは、渡されたデータを保持するために、整数の配列を宣言する必要があり、また、あなたはその後、アレイ

Public Class Form3 
    Dim requestedqueue() As Integer 

    Public Property ArrayParameter As Integer() 
     Get 
      Return arrayData 
     End Get 
     Set(value() As Integer) 
      arrayData = value 
     End Set 
    End Property 

End Class 

を渡す方法を持っているように、Form1からデータを渡すために、パブリックプロパティを宣言しますform1を使用する場合は、単にパラメータを設定するのに

Form3.ArrayParameter=requestedqueue() 

を使用します。

、あなたが望むなら、あなたは通常どおりフォームを表示することができ、またはフォームがすでに表示されている場合、あなたはボタンのクリックを使用してコードを処理できるなど

すでにオープンしてデータを処理する場合ユーザーの操作なしですぐにフォームに入力することができます。処理を行い、プロパティのSet部分に含めるプロシージャを記述することができます。

たとえば、あなたはForm3ListBox1呼ばListBoxに配列のすべての要素を追加したい場合は、あなたが...

Private Sub AddDataToListbox() 
    ListBox1.Items.Clear() 
    For Each item As Integer In requestedqueue 
     ListBox1.Items.Add(item) 
    Next 
End Sub 

を、このような手順を記述し、この

Public Property ArrayParameter As Integer() 
    Get 
     Return requestedqueue 
    End Get 
    Set(value() As Integer) 
     requestedqueue = value 
     AddDataToListbox() 
    End Set 
End Property 
関連する問題