2017-10-16 28 views
-1

我,宣佈在公共陣列形式,傳遞數組爲另一種形式(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

這是沒有足夠的信息來重現問題。你有沒有填充陣列?你如何首先打開Form2? –

回答

0

我不知道你所說的

的意思,但它顯示在窗口2數組

newrequestNothing因爲您設置了等於requestedqueue其價值是Nothing,直到您用一些值填充數組。

如果你有Public requestedqueue() As Integer = {1, 2, 3}那麼你不會遇到錯誤。

0

將數據傳遞給表單的一種方法是將屬性添加到第二個表單。

可以說你有一個叫做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部分中。

例如。如果你想添加到陣列中一個名爲Form3ListBox1ListBox的所有元素,你可以寫一個程序是這樣..

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

,改變你的Form3.ArrayParameter代碼這個

Public Property ArrayParameter As Integer() 
    Get 
     Return requestedqueue 
    End Get 
    Set(value() As Integer) 
     requestedqueue = value 
     AddDataToListbox() 
    End Set 
End Property 
相關問題