Function 如何访问在前一个函数中创建的第二个函数上的标签数组?Win Forms App.NET
我创建了一个标签数组,这些标签被调用并放在屏幕上的指定位置(当我按下按钮/当我访问该函数时)。如何使用另一个按钮(在另一个函数中)处理这些变量/标签阵列?我提到,我在一开始就宣布labelarray是全球性的Function 如何访问在前一个函数中创建的第二个函数上的标签数组?Win Forms App.NET,function,variables,call,global,Function,Variables,Call,Global,我创建了一个标签数组,这些标签被调用并放在屏幕上的指定位置(当我按下按钮/当我访问该函数时)。如何使用另一个按钮(在另一个函数中)处理这些变量/标签阵列?我提到,我在一开始就宣布labelarray是全球性的 Public Class MyForm Dim p_global As Integer Dim labelarray() As Label Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Butto
Public Class MyForm
Dim p_global As Integer
Dim labelarray() As Label
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
...
p_global = p
Dim labelarray(p) As Label
For index As Integer = 0 To p Step 1
labelarray(index) = New Label With {
.Name = String.Format("labelpart_", index.ToString),
.AutoSize = False,
.Size = New Drawing.Size(scal_Part_Width, scal_Part_Height),
.BorderStyle = BorderStyle.FixedSingle
}
...
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For Index = 0 To p_global Step 1
labelarray(Index).Dispose()
Next
End Sub
End Class
它在labelarray(Index.Dispose()“System.NullReferenceException:'对象引用未设置为对象的实例'上给出了一个错误。”
有人能给我解释一下,我怎样才能准确地调用我在第一个函数中创建的labelarray
编辑:很明显,这是一种魅力。我只需要在调用全局arraylabel()->到arraylabel(999)时输入一个值。我从本地功能按钮1\u单击中删除了作为标签的暗标签阵列(p)
以下是对我有效的代码
Public Class MyForm
Dim p_global As Integer
Dim labelarray(999) As Label
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
...
p_global = p
For index As Integer = 0 To p Step 1
labelarray(index) = New Label With {
.Name = String.Format("labelpart_", index.ToString),
.AutoSize = False,
.Size = New Drawing.Size(scal_Part_Width, scal_Part_Height),
.BorderStyle = BorderStyle.FixedSingle
}
...
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For Index = 0 To p_global Step 1
labelarray(Index).Dispose()
Next
End Sub
End Class
问题:全局labelarray()是否有可能使用本地输入进行初始化?我尝试了labelarray(p_global),但它给了我一个错误,因此我将999个元素放入其中,希望用户不会超过此限制。您可以在Dispose()之前向IsDisposed进行检查,我搜索IsDisposed,据我所知,新的vb版本已经将此方法作为默认方法了?不管怎样,我找到了一个解决方案,现在它工作了,尽管你能给我一个编辑中最后一个问题的答案吗?(我非常感激)你能用列表代替数组吗?暗标签列表为新列表(标签)否。我想我需要创建一个私有的void函数,这样当我尝试初始化我的arraylist时,我就可以使用我的输入变量了。现在,由于全局变量处于开始阶段,所以程序以级联方式进行,并将其中的任何变量作为数组元素。