ShapeContainer 類別
更新:2007 年 11 月
提供容器給 LineShape、OvalShape 和 RectangleShape 控制項,以及衍生自 Shape 的任何其他控制項。
命名空間: Microsoft.VisualBasic.PowerPacks
組件: Microsoft.VisualBasic.PowerPacks.Vs (在 Microsoft.VisualBasic.PowerPacks.Vs.dll 中)
語法
<BrowsableAttribute(False)> _
Public NotInheritable Class ShapeContainer _
Inherits UserControl
Dim instance As ShapeContainer
[BrowsableAttribute(false)]
public sealed class ShapeContainer : UserControl
[BrowsableAttribute(false)]
public ref class ShapeContainer sealed : public UserControl
public final class ShapeContainer extends UserControl
備註
LineShape、OvalShape 或 RectangleShape 控制項只能包含在做為線條和形狀控制項畫布的 ShapeContainer 物件中。
在設計階段將線條或形狀加入到表單或容器時,如果 ShapeContainer 不存在,就會自動建立該容器。線條或形狀的 Parent 屬性即會設定為該 ShapeContainer。而該 ShapeContainer 的 Parent 屬性,會設定為線條或形狀所加入的表單或容器控制項。
在執行階段藉由使用 New 方法建立線條或形狀時,控制項的 Parent 屬性必須設定為 ShapeContainer。如果表單或容器的 ShapeContainer 已經存在,您應該將 Parent 屬性設定為該 ShapeContainer。如果 ShapeContainer 不存在,您可以使用 New 方法建立 ShapeContainer,並將其 Parent 屬性設定為表單或容器。
注意事項: |
---|
請特別小心,不要為每個表單或容器建立超過一個的 ShapeContainer,因為這樣做可能會造成未預期的行為。在撰寫程式碼以程式設計方式建立表單或容器後,如果要加入設計階段線條和形狀控制項,您應該修改該程式碼,使用設計工具建立的 ShapeContainer。 |
範例
下列範例會檢查是否存在現有的 ShapeContainer,並為使用 New 方法在執行階段所建立的 OvalShape 控制項,設定其 Parent 屬性。
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim NewOval As New OvalShape
Dim i As Integer
Dim found As Boolean
' Loop through the Controls collection.
For i = 0 To Me.Controls.Count - 1
' If a ShapeContainer is found, make it the parent.
If TypeOf Controls.Item(i) Is ShapeContainer Then
NewOval.Parent = Controls.Item(i)
found = True
Exit For
End If
Next
' If no ShapeContainer is found, create one and set the parents.
If found = False Then
Dim sc As New ShapeContainer
sc.Parent = Me
NewOval.Parent = sc
End If
NewOval.Size = New Size(200, 300)
End Sub
private void form1_Load(System.Object sender, System.EventArgs e)
{
OvalShape NewOval = new OvalShape();
int i;
bool found = false;
// Loop through the Controls collection.
for (i = 0; i < this.Controls.Count; i++)
{
// If a ShapeContainer is found, make it the parent.
if (this.Controls[i] is ShapeContainer)
{
NewOval.Parent = ((ShapeContainer)this.Controls[i]);
found = true;
break;
}
}
// If no ShapeContainer is found, create one and set the parents.
if (found == false)
{
ShapeContainer sc = new ShapeContainer();
sc.Parent = this;
NewOval.Parent = sc;
}
NewOval.Size = new Size(200, 300);
}
繼承階層架構
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.UserControl
Microsoft.VisualBasic.PowerPacks.ShapeContainer
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。
請參閱
參考
Microsoft.VisualBasic.PowerPacks 命名空間
其他資源
Line 和 Shape 控制項簡介 (Visual Studio)
HOW TO:使用 LineShape 控制項繪製線條 (Visual Studio)
HOW TO:使用 OvalShape 和 RectangleShape 控制項繪製圖案 (Visual Studio)