2013-09-23 87 views
0

我的目標是將用戶輸入的列信息放在一個表單上,並將其放在表單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 squigglies,所以它不起作用。我究竟做錯了什麼?此外,我一直在發現自己正在努力將列表轉換爲數組,將組合框轉換爲列等。有沒有什麼好的一致性,語法或資源來學習如何在這些數據持有者之間進行轉換?

感謝

回答

0

由於您的CrewListShared,你應該能夠從其他形式的這樣的訪問:

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方法,使轉換非常容易。

+0

謝謝,但是我上面聲明CLPure的方式肯定有問題。任何幫助?我一直收到錯誤'CLPure未聲明' –

+0

'CLPure'是'CrewDatabaseForm_FormClosed'方法的局部,所以你將無法在其他地方使用它。這就是爲什麼在我的回答中,我說當你在'NewWellForm_Load'方法中時使用'CrewDatabaseForm.CrewList'。 –