对于PowerPacks RectangleShape来说,像Controls(“lbl”& i)这样的东西?

时间:2015-04-12 19:53:15

标签: vb.net

我正在为高中的VB.NET课做一些事情,之前我在互联网上找到了一种使用Controls("lbl" & i).Text = "Example"来快速更改/设置多个标签的方法。

现在我们正在做一些简单的动画(我想更进一步)并且我希望有一个计时器使得每个通过按键创建的矩形开始通过计时器移动。如果基本上让我感到困惑的是我想要做的是(当然我的语法不正确,因为我使用的是controls()作为我的例子):

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

For i = 0 to createdRectangleAmount
    Controls("rec" & i).left += 1
Next

End Sub

另外作为最后一个注意事项,计时器仅在创建矩形(矩形0)后才启用,因此除了明显误用控件()之外,这不会产生错误

1 个答案:

答案 0 :(得分:0)

使用过滤器获取特定的控件集合。 OfType询问您要查找的控件类型。 Where谓词使用条件表达式进行一些过滤,如下所示)。这也假设所有控件都位于窗体控件集合中,而不是任何其他容器(面板,组框等)。一如既往地检查MSDN

Dim recs = Me.Controls.OfType(Of RectangleShape)().
              Where(Function(r) r.Name.StartsWith("rec"))

For Each rec In recs
 rec.SetBounds(recBounds.Left + 1, rec.Bounds.Top, rec.Width, rec.Height)
Next