1

我正在研究 VB 2008 (express) 中按钮数组的控制属性。我一直在查看 MS 白皮书中的示例代码,与 VB6 中所做的相比,它有点让我头晕目眩!(是的,我是一个业余爱好者,所以请原谅糟糕的编码,对于这里有经验的人来说,这可能是一个简单的问题......)

如果我没看错的话,现在正确的做法是为该类创建一个单独的类,创建构造函数等,然后在项目中实例化它?

我正在尝试使用这样一个相对简单的数组:

    'Create buttons
    'Dim btn(30) As Button
    'For i As Integer = 0 To 29
    '    btn(i) = New Button()
    '    btn(i).Width = 100
    '    btn(i).Height = 30
    '    btn(i).Text = i + 1

    '    btn(0).Left = 120
    '    btn(0).Top = 100

    '    If i >= 1 And i <= 14 Then
    '        btn(i).Left = 120
    '        btn(i).Top = btn(0).Top + (i * 30)
    '    End If

    '    If i = 15 Then
    '        btn(15).Left = 235
    '        btn(15).Top = 100
    '    End If

    '    If i >= 16 And i <= 29 Then
    '        btn(i).Left = 235
    '        btn(i).Top = btn(0).Top + ((i Mod 15) * 30)
    '    End If
    '    Me.Controls.Add(btn(i))

    'Next

如果我把它放到加载方法中,那么我不能从另一个按钮访问它,因为我认为当这个片段在加载子例程中时它在一个私有子例程中?是否有一种简单的方法可以只使用此代码,以便可以从表单中的其他函数访问 btn(i) 数组?

4

1 回答 1

1

您需要使按钮数组成为类中的字段或属性,而不是加载方法中。

最简单的方法是将Dim btn(30) As Button声明从加载方法移到类中(将其粘贴在加载方法上方的行中),然后就完成了。

有人可能会争论编码标准和东西 - 但我认为这会让你工作(-:

好的,除了上述和您的评论之外,代码足以说明我试图解释的内容。此代码将编译并运行 - 可从表单类中的两个方法访问的按钮数组:

Public Class Form1

    Dim btn(30) As Button

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i As Integer = 0 To 29
            btn(i) = New Button
        Next
    End Sub

    Private Sub DoSomethingElse()
        For i As Integer = 0 To 29
            btn(i).Text = String.Format("{0}", i + 1)
        Next
    End Sub

End Class
于 2010-02-21T12:04:46.350 回答