2014-01-24 54 views
0
Public Class Form3 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

    lstPatientNames.Items.Add(Names()) 

End Sub 
End Class 

我想让列表框显示数组:names()。但是,我得到错误:“索引的数量少于索引数组的维度数量”。该数组没有设置数量的元素,因为用户在输入数据时决定数组的元素数量。那么我的代码应该如何看待?列表框中的显示阵列

感谢

灌装阵列:

Public Class Form2 

Dim i As Integer = 0 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMainMenu.Click 
    Me.Close() 
End Sub 

Private Sub btnEnterPatient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnterPatient.Click 


    ReDim Preserve Names(0 To i) 
    Names(i) = txtPatientName.Text 

    ReDim Preserve Heights(0 To i) 
    Heights(i) = txtPatientHeight.Text 

    ReDim Preserve Weights(0 To i) 
    Weights(i) = txtPatientWeight.Text 

    i = i + 1 

    Label1.Text = i 

End Sub 
End Class 
+0

告诉我的代码为您array..i意味着在那里填写。 –

+0

我想你将需要遍历名称中的每个名称并单独添加。 – Mych

+0

我会尝试一个循环,我认为这就是我如何设法解决类似的问题我只是忘记了谢谢 – Marcel

回答

0
List1.Items.Clear 
List1.Items.AddRange(al1.ToArray) 

OR,

List1.Items.Clear 
For each obj as object in al1 
    List1.Items.Add(obj) 
Next 

或者,

List1.Items.Clear 
For i as Integer = 0 to al1.count-1 
    List1.Items.Add(al1(i)) 
Next 

您将不得不重写Arraylist中对象的ToString。你将不得不使列表框字体成为一个固定的字体,所以你可以做间距(Courier New)。
我会建议使用Generic.List(Of clsCustomer),但是如果这不是在你的任务中,你会被卡在类型列表中的对象中。
但是,这仍然遗漏了很多解决该任务的细节。
祝你好运。

SOURCE

+0

al1似乎给我一个错误,当我输入你的第一个选项,是一个错字还是我错过了什么? – Marcel

+0

@Marcel al1是真实的ArrayList – Hoh