Vb.net 循环karstieji(x)的VB。位置=未处理新点(0,a)nullreferenceException
Vb应用程序冻结I get nullreferenceException在新点(0,a)上未处理。以下是代码Vb.net 循环karstieji(x)的VB。位置=未处理新点(0,a)nullreferenceException,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,Vb应用程序冻结I get nullreferenceException在新点(0,a)上未处理。以下是代码 For x = 1 To 5 Dim karstieji(x) As Label Dim karstieji1(x) As Button Dim a As Integer Dim b As Integer a = 0 b = 0 Panel2.Controls.Add(
For x = 1 To 5
Dim karstieji(x) As Label
Dim karstieji1(x) As Button
Dim a As Integer
Dim b As Integer
a = 0
b = 0
Panel2.Controls.Add(karstieji(x))
karstieji(x).Location = New Point(0, a)
karstieji(x).Size = New Size(140, 20)
karstieji(x).Text = "Bulvyniai blynai"
karstieji(x).Font = New Font(1, 12)
Panel2.Controls.Add(karstieji1(x))
karstieji1(x).Location = New Point(140, b)
karstieji1(x).Size = New Size(12, 12)
a += 20
b += 12
Next
无法在VB.NET中使用控件数组,因此尝试使用的代码将无法工作 如果您需要保留对控件的引用,我建议使用通用列表:
'In your class
Private _labels As New List(Of Label)
Private _buttons As New List(Of Button)
'create the controls
Dim a As Integer = 0
Dim b As Integer = 0
For x = 1 To 5
Dim karstieji As New Label
Dim karstieji1 As New Button
Panel2.Controls.Add(karstieji)
karstieji.Location = New Point(0, a)
karstieji.Size = New Size(140, 20)
karstieji.Text = "Bulvyniai blynai"
karstieji.Font = New Font(1, 12)
Panel2.Controls.Add(karstieji1)
karstieji1.Location = New Point(140, b)
karstieji1.Size = New Size(12, 12)
a += 20
b += 12
'add a reference to the controls so you can refer to them later
_labels.Add(karstieji)
_buttons.Add(karstieji1)
Next
注:我还将
a
和b
变量移到循环外,因为这些变量始终为零,否则他还应初始化按钮,否则在karstieji1(x)处会发生nullreference异常。位置=新点(140,b)
数组不能在arrayy中声明新数组。sranken如何初始化按钮karstieji1(x)。位置=新点(140,b)如何操作?请参阅Matt的代码。它将解决您的问题:)Matts代码与我的问题无关:/nullreferenceException在newpoint(0,a)上未处理。您可以使用控件数组(尽管它们与VB6中的“控件数组”不对应)。OP代码中的错误是没有实例化控件类。