从列表到组合框

时间:2013-09-23 13:04:08

标签: vb.net list combobox

我的目标是将用户输入的列信息放在一个表单上并将其放在表单2的组合框中。我真的很新编码和vb.net,请保留它为傻瓜。这就是我目前在一种形式上所拥有的。

Public Class CrewDatabaseForm
    Public Shared CrewList As List(Of String)

    Private Sub CrewDatabaseForm_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        Dim CL As New List(Of String)
        Dim CLPure As New List(Of String)
        For i As Integer = 0 To DataGridView1.RowCount - 1
            CL.Add(DataGridView1.Rows(i).Cells(0).Value.ToString)
        Next
        CLPure = CL.Distinct
        CrewList = CLPure
    End Sub

    Private Sub CrewDatabaseForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub
End Class

DataGridView1只是我从工具箱拖出的DataGrid。我试图将第一列传递到列表中,使其不同,然后将其传递给此表单的公共列表以获取:

Public Class NewWellForm
    Private Sub NewWellForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox1.Items.Add(CLPure.Item(1))
    End Sub
End Class

这里我试图将列表放入Combobox1

这里的CLPure被强调为swith swigglies,所以它不起作用。我究竟做错了什么?此外,我一直在努力将列表转换为数组到组合框到列等。是否有任何良好的一致性,语法或资源来学习如何在这些数据持有者之间进行转换?

由于

2 个答案:

答案 0 :(得分:0)

由于您的CrewList字段为Shared,您应该可以从其他表单访问它:

Private Sub NewWellForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ComboBox1.Items.AddRange(CrewDatabaseForm.CrewList.ToArray())
End Sub

AddRange方法允许您一次添加多个项目,但它需要您为其提供一个数组。由于CrewListList(Of String)而不是数组,因此您需要在将其提供给AddRange方法之前将其转换为数组。方便的是,List(Of String)类有一个ToArray方法,可以很容易地进行转换。

答案 1 :(得分:0)

创建对象列表,并使用以下形式的load方法填充组合框:

Object[] myList = new Object[] {4, 6, 8, 10, 12, 14, 16 };

private void myForm_Load(object sender, System.EventArgs e)
{
   comboBox1.Items.AddRange(myList);
}