2017-10-16 60 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 
相关问题