我的目标是将用户输入的列信息放在一个表单上并将其放在表单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,所以它不起作用。我究竟做错了什么?此外,我一直在努力将列表转换为数组到组合框到列等。是否有任何良好的一致性,语法或资源来学习如何在这些数据持有者之间进行转换?
由于
答案 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
方法允许您一次添加多个项目,但它需要您为其提供一个数组。由于CrewList
是List(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);
}