【问题标题】:Pass Array From Main Form to Other Form and then Put it in ComboBox将数组从主窗体传递到其他窗体,然后放入 ComboBox
【发布时间】:2015-06-22 22:16:14
【问题描述】:

我需要将数组从主窗体传递到 VB.NET 中的其他窗体,然后将数组的值放入 ComboBox。我尝试使用下面的代码,但出现错误“值不能为空”。出现“参数名称:item”。

有人知道如何解决这个问题吗?

谢谢。

Dim kodeb() As String = FrmBarang.kode
ComboBox1.Items.AddRange(kodeb)

【问题讨论】:

  • 如果不使用默认表单实例会更容易
  • 在我看来,你有两个选择。 1.)使用全局数组变量。 2.)向表单类添加一个新的构造函数,以数组为参数。
  • 您还可以创建将公共属性添加到第二个表单的类。然后,在第一个表单中,创建第二个表单的实例并将其数组属性设置为第一个表单的数组。
  • 请记住,表单实际上是特定表单类的实例。因此,如果您没有以编程方式声明表单的新实例,那么获取您要查找的表单实例会更加困难。例如,在上面的代码中,您试图从 FrmBarang 类中获取 .kode 对象。 FrmBarang 是表单的类,而不是表单本身。但是,如果您以编程方式声明了表单Dim myFrmBarang as new FrmBarang,那么您可以轻松引用该表单对象。
  • @DiscipleMichael ...除了那个实例肯定是一个不可见的实例并且不包含所需的相关数据。但是,您最初的建议是正确的。

标签: vb.net


【解决方案1】:

假设FormA生成数组并创建FormB,然后传递数组

在伪代码中

public class FormA

    private sub onButton1_click()
        dim a(10) as string
        ' generate array
        loop
            ' add items to array
        end loop

        ' lets open another form and pass the array
        dim f as new FormB(a) 'constructor of form B accepts array
        f.show()
    end sub

end class 

public class FormB

    public sub new(byval a() as string)

        ComboBox1.Items.AddRange(a);

    end sub

end class 

这只是其中一种方式。由于您的问题不够具体,请尽量充分利用它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多