1

我有一个循环,我想在每次循环迭代时添加一个按钮......

我有这个高于我的时间:

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

但是我收到一条错误消息...它是丹麦语,所以我在将其翻译成英语时遇到了一些麻烦,对不起...但这是关于一个在循环中引用自身的对象...

希望你们中的一些人能发现这个问题……我可能写错了……谢谢。

4

2 回答 2

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

于 2013-11-15T10:24:19.607 回答
0

问题是你试图.Add(mybut).mybut.Controls

如果您在循环中使用此代码,您还必须考虑更改.Location创建的每个按钮。

于 2013-11-15T10:24:54.343 回答