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.
![]() |
---|
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
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)