Classe ShapeContainer
Aggiornamento: novembre 2007
Fornisce un contenitore per i controlli LineShape, OvalShape, RectangleShape e per tutti gli altri controlli che derivano da Shape.
Spazio dei nomi: Microsoft.VisualBasic.PowerPacks
Assembly: Microsoft.VisualBasic.PowerPacks.Vs (in Microsoft.VisualBasic.PowerPacks.Vs.dll)
Sintassi
<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
Note
Un controllo LineShape, OvalShape o RectangleShape può essere contenuto solo in un oggetto ShapeContainer, che funge da area di disegno per i controlli Line e Shape.
Quando si aggiunge una linea o una forma a un form o a un contenitore in fase di progettazione, viene creato automaticamente, se non esiste già, un oggetto ShapeContainer. La proprietà Parent della linea o della forma viene impostata su tale oggetto ShapeContainer. La proprietà Parent dell'oggetto ShapeContainer viene impostata sul form o sul controllo contenitore a cui è stata aggiunta la linea o la forma.
Quando si crea una linea o una forma in fase di esecuzione mediante il metodo New, la proprietà Parent del controllo deve essere impostata su un oggetto ShapeContainer. Se esiste già un oggetto ShapeContainer per il form o il contenitore, è necessario impostare la proprietà Parent su tale oggetto ShapeContainer. Se non esiste un oggetto ShapeContainer, è possibile creare un oggetto ShapeContainer mediante il metodo New e impostarne la proprietà Parent sul form o sul contenitore.
![]() |
---|
Prestare attenzione a non creare più oggetti ShapeContainer per ogni form o contenitore, poiché questa operazione può generare un comportamento imprevisto. Se si aggiunge un controllo Line o Shape della fase di progettazione a un form o a un contenitore dopo aver scritto codice per crearne uno a livello di codice, è necessario modificare tale codice in modo che utilizzi l'oggetto ShapeContainer creato dalla finestra di progettazione. |
Esempi
Nell'esempio riportato di seguito viene verificata l'esistenza di un oggetto ShapeContainer e viene impostata la proprietà Parent di un controllo OvalShape creato in fase di esecuzione mediante il metodo New.
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);
}
Gerarchia di ereditarietà
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
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.VisualBasic.PowerPacks
Altre risorse
Introduzione ai controlli Line e Shape (Visual Studio)
Procedura: disegnare linee con il controllo LineShape (Visual Studio)
Procedura: disegnare forme con i controlli OvalShape e RectangleShape (Visual Studio)