Vb.net visual basic 2008控件阵列
我正在研究VB2008(express)中按钮数组的控制属性。我一直在看MS白皮书中的示例代码,与在VB6中所做的相比,这让我有些头晕目眩!(是的,我是一个业余爱好者,所以请原谅我糟糕的编码,对于这里有经验的人来说,这可能是一个简单的问题……) 如果我阅读正确,现在正确的方法是创建一个单独的类,为该类创建构造函数,等等,然后在项目中实例化它 我尝试使用一个相对简单的数组,如下所示:Vb.net visual basic 2008控件阵列,vb.net,control-array,Vb.net,Control Array,我正在研究VB2008(express)中按钮数组的控制属性。我一直在看MS白皮书中的示例代码,与在VB6中所做的相比,这让我有些头晕目眩!(是的,我是一个业余爱好者,所以请原谅我糟糕的编码,对于这里有经验的人来说,这可能是一个简单的问题……) 如果我阅读正确,现在正确的方法是创建一个单独的类,为该类创建构造函数,等等,然后在项目中实例化它 我尝试使用一个相对简单的数组,如下所示: 'Create buttons 'Dim btn(30) As Button 'For i
'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(30)As按钮
'对于i作为整数=0到29
'btn(i)=新建按钮()
'btn(i).宽度=100
'btn(i).高度=30
'btn(i).Text=i+1
'btn(0).左=120
'btn(0)。顶部=100
'如果i>=1且i=16且i,则需要使按钮数组成为类中的字段或属性,而不是load方法中的字段或属性 最简单的方法是只需将
Dim btn(30)As按钮
声明从load方法移到类中(将其粘贴在load方法上方的行上),就完成了
有人可能会争论编码标准之类的问题,但我认为这会让你工作(-:
好的,除了上面的内容和您的评论,还有足够的代码来说明我试图解释的内容。这段代码将编译并运行-button数组,该数组可从form类中的两个方法访问:
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
您需要使按钮数组成为类中的字段或属性,而不是load方法中的字段或属性 最简单的方法是只需将
Dim btn(30)As按钮
声明从load方法移到类中(将其粘贴在load方法上方的行上),就完成了
有人可能会争论编码标准之类的问题,但我认为这会让你工作(-:
好的,除了上面的内容和您的评论,还有足够的代码来说明我试图解释的内容。这段代码将编译并运行-button数组,该数组可从form类中的两个方法访问:
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
不幸的是,我认为这不起作用……我必须将它转换成一个子程序,我这样做了,然后从表单的load方法调用它,但我仍然无法获得一个按钮单击事件来查看或操作btn(I)…仍然是一个范围问题?呃,按钮的Dim需要在类中而不是子类中。VB不是我通常选择的武器…但我可以解决这个问题,将添加代码。我想我在进入类后就可以工作了…周末一直在困惑:-)我正在学习。慢慢地,但正在学习。不幸的是,我认为这不起作用……我必须将它转换成一个子程序,我做到了,然后从表单的加载方法调用它,但我仍然无法获得一个按钮单击事件来查看或操作btn(I)…仍然是一个范围问题吗?呃,按钮的Dim需要在类中而不是子类中。VB不是我通常选择的武器…但我可以解决这个问题,将添加代码。我想我在进入类后就可以工作了…周末一直在困惑:-)我正在学习。慢慢地,但是学习。