而不是在窗体设计器手动添加的线条,考虑编程将它们添加
Const N As Integer = 50
Dim _lines(N - 1) As LineShape
Dim _numbers(N - 1) As Integer
Private Sub frmLineShapes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: Fill the _numbers array with values.
For i As Integer = 0 To N - 1
_lines(i) = New LineShape With { _
.X1 = 5 * i + 10, .Y1 = 20, _
.X2 = 5 * i + 10, .Y2 = 60, _
.BorderColor = DirectCast(IIf(_numbers(i) = 3, Color.Blue, Color.Black), Color) _
}
Next
Me.SuspendLayout()
Me.ShapeContainer1.Shapes.AddRange(_lines)
Me.ResumeLayout()
End Sub
现在,您已经拥有数组中的行,并且可以轻松访问并更改它们。
注:
在Visual Basic的PowerPack的形状并不直接添加到形式;相反,它们被添加到形状容器。您必须在窗体设计器中为窗体添加至少一个形状,以便VB自动将形状容器添加到窗体。如果没有,你仍然可以通过编程来添加它。
Me.SuspendLayout()
Dim ShapeContainer1 = New ShapeContainer
Me.Controls.Add(ShapeContainer1)
ShapeContainer1.Shapes.AddRange(_lines)
Me.ResumeLayout()
UPDATE:
如果手动添加这些行,你仍然可以通过他们的名字
For i As Integer = 0 To N - 1
Dim index As Integer = Me.ShapeContainer1.Shapes.IndexOfKey("LineShape" & (i + 1))
Dim line As LineShape = DirectCast(Me.ShapeContainer1.Shapes(index), LineShape)
If _numbers(i) = 3 Then
line.BorderColor = Color.Blue
Else
line.BorderColor = Color.Black
End If
Next
我添加了一个例子,它显示了如何将线接入线可以通过他们的名字进行访问。 – 2012-02-17 14:10:06