Share via


ShapeContainer-Klasse

Aktualisiert: November 2007

Stellt einen Container für die Steuerelemente LineShape, OvalShape und RectangleShape sowie alle anderen Steuerelemente, die von Shape abgeleitet werden, bereit.

Namespace:  Microsoft.VisualBasic.PowerPacks
Assembly:  Microsoft.VisualBasic.PowerPacks.Vs (in Microsoft.VisualBasic.PowerPacks.Vs.dll)

Syntax

<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

Hinweise

Die Steuerelemente LineShape, OvalShape oder RectangleShape können nur in einem ShapeContainer-Objekt enthalten sein, welches als Canvas für Line- und Shape-Steuerelemente fungiert.

Wenn Sie zur Entwurfszeit eine Linie oder eine Form zu einem Formular oder Container hinzufügen, wird automatisch ein ShapeContainer erstellt, wenn dieser nicht bereits vorhanden ist. Die Parent-Eigenschaft der Linie oder Form wird auf diesen ShapeContainer festgelegt. Die Parent-Eigenschaft von ShapeContainer wird auf das Formular oder Containersteuerelement festgelegt, dem die Linie bzw. Form hinzugefügt wurde.

Wenn Sie zur Laufzeit eine Linie oder Form mit der New-Methode erstellen, müssen Sie die Parent-Eigenschaft des Steuerelements auf ShapeContainer festlegen. Falls für das Formular bzw. für den Container bereits ein ShapeContainer-Objekt vorhanden ist, müssen Sie die Parent-Eigenschaft auf diesen ShapeContainer festlegen. Falls kein ShapeContainer-Objekt vorhanden ist, können Sie einen ShapeContainer mit der New-Methode erstellen und die Parent-Eigenschaft auf das Formular bzw. den Container festlegen.

Hinweis:

Achten Sie darauf, dass Sie für jedes Formular bzw. jeden Container nur ein ShapeContainer-Objekt erstellen. Andernfalls kann es zu einem unerwarteten Verhalten kommen. Wenn Sie zur Entwurfszeit ein Line- oder Shape-Steuerelement zu einem Formular oder Container hinzufügen, nachdem Sie Code zum programmgesteuerten Erstellen eines solchen Steuerelements geschrieben haben, müssen Sie den Code so ändern, dass dieser das vom Entwickler erstellte ShapeContainer-Objekt verwendet.

Beispiele

Im folgenden Beispiel wird überprüft, ob ein ShapeContainer-Objekt vorhanden ist. Weiterhin wird die Parent-Eigenschaft eines OvalShape-Steuerelements festgelegt, das zur Laufzeit mit der New-Methode erstellt wurde.

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);
}

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

ShapeContainer-Member

Microsoft.VisualBasic.PowerPacks-Namespace

Weitere Ressourcen

Einführung in das Line-Steuerelement und das Shape-Steuerelement (Visual Studio)

Gewusst wie: Zeichnen von Linien mit dem LineShape-Steuerelement (Visual Studio)

Gewusst wie: Zeichnen von Formen mit dem OvalShape-Steuerelement und dem RectangleShape-Steuerelement (Visual Studio)