2013-03-21 73 views
1

我有一些动态创建的按钮(运行时生成的按钮)以及一些动态创建的面板。我想做类似于下面的代码的东西,但我知道这段代码不起作用。通过动态创建的控件循环

For i = 1 to NumberOfButtons 
    button(i).top = panel(i).top 
next 

的按钮名为Button1,BUTTON2等,以及面板也称为PANEL1,是Panel2等 这一切正在用VB写的快递2008年

回答

0

当你生成你的按钮和面板,你需要将它们存储到一个数组中。然后你可以通过你的代码示例中的索引来访问它。另一种选择是通过Me.Controls("button1")和类似的方式来完成,但我会考虑这种不好的编码。

+0

我就要在使用数组给一个尝试,但至少那里有另一种选择。谢谢 – Jamie 2013-03-21 20:25:42

+0

@ user2179046:你不能出错阵列。名称的字符串常量很脆弱,以便长期维护。 – Neolisk 2013-03-21 20:26:57

+1

只需更新一下,就可以完全正常工作,并在此过程中学习更多关于数组的知识!我首先尝试使用me.controls(“button1”)方法。然后尝试使用数组,代码变得非常简单。谢谢您的帮助! – Jamie 2013-03-21 23:23:23

0
For i As Integer = 1 To theTopNumber 
    Me.Controls("button" & i.ToString).Top = Me.Controls("panel" & i.ToString).Top 
Next 
0

这不工作?

For Each btn As Button In Me.Controls 
    For Each pnl In Me.Controls 
     btn.Top = pnl.Top 
    Next 
Next 

请(如果您满意)投票或标记为答案,因为我神秘的禁止没有特别原因。这可能有助于重新启用它:/

;)