共用方式為


ShapeContainer 類別

更新:2007 年 11 月

提供容器給 LineShapeOvalShapeRectangleShape 控制項,以及衍生自 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

備註

LineShapeOvalShapeRectangleShape 控制項只能包含在做為線條和形狀控制項畫布的 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) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

ShapeContainer 成員

Microsoft.VisualBasic.PowerPacks 命名空間

其他資源

Line 和 Shape 控制項簡介 (Visual Studio)

HOW TO:使用 LineShape 控制項繪製線條 (Visual Studio)

HOW TO:使用 OvalShape 和 RectangleShape 控制項繪製圖案 (Visual Studio)