代码之家  ›  专栏  ›  技术社区  ›  Bart Silverstrim

Visual Basic 2008控件数组

  •  1
  • Bart Silverstrim  · 技术社区  · 14 年前

    我正在研究如何在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
    

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

    1 回复  |  直到 12 年前
        1
  •  1
  •   Murph    14 年前

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

    最简单的方法就是移动 Dim btn(30) As Button 将LOAD方法的声明放到类中(将其粘贴在LOAD方法上方的行上),这样就完成了。

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

    好的,更进一步,还有你的评论,仅仅是足够的代码来说明我试图解释的内容。此代码将编译并运行从表单类内的两个方法访问的按钮数组:

    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
    
    推荐文章