我有一个循环,我想在每次循环迭代时添加一个按钮......
我的上面有这个:
Dim mybut As New Button
Dim btn_number As Integer = 0
我在这段时间里有这个:
btn_number += 1
mybut.AutoSize = True
mybut.Name = "delete-btn" & btn_number
mybut.Location = New System.Drawing.Point(77, 112)
mybut.Text = "Delete"
With mybut.Controls
.Add(mybut)
End With
但是我得到了一条错误信息......这是丹麦文,所以我将它翻译成英文有点麻烦,对不起......但这是关于一个在循环中引用自身的对象。 ..
希望你们中的一些人能够发现这个问题......我可能写错了...... 感谢。
答案 0 :(得分:1)
您无法将按钮添加到自己的控件中(与mybut.Controls.Add(mybut)
一样)
您必须将它添加到某个容器的控件集合中,该集合可能是表单本身(Me.Controls.Add
)
mybut = New Button
btn_number += 1
With mybut
mybut.AutoSize = True
mybut.Name = "delete-btn" & btn_number
mybut.Location = New System.Drawing.Point(77, 112 +
btn_number * (mybut.height + 5))
mybut.Text = "Delete"
End With
Me.Controls.Add(mybut)
您可能还想更改每个按钮的位置 - 如此处所示。
至于你的编辑:
把它放在循环上方:Dim mybut As Button
这在循环中:mybut = New Button
答案 1 :(得分:0)
问题是您尝试.Add(mybut)
到mybut.Controls
。
如果您在循环中使用此代码,则还必须考虑更改所创建的每个按钮的.Location
。