ShapeContainer, classe

Mise à jour : novembre 2007

Fournit un conteneur pour les contrôles LineShape, OvalShape, RectangleShape et pour tout autre contrôle dérivé de Shape.

Espace de noms :  Microsoft.VisualBasic.PowerPacks
Assembly :  Microsoft.VisualBasic.PowerPacks.Vs (dans Microsoft.VisualBasic.PowerPacks.Vs.dll)

Syntaxe

<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

Notes

Un contrôle LineShape, OvalShape ou RectangleShape peut uniquement être contenu dans un objet ShapeContainer qui sert de zone de dessin pour les contrôles Line et Shape.

Lorsque vous ajoutez une ligne ou une forme à un formulaire ou un conteneur au moment du design, un ShapeContainer est automatiquement créé s'il n'en existe pas encore. La valeur de la propriété Parent de la ligne ou de la forme est ce ShapeContainer. La valeur de la propriété Parent du ShapeContainer est le contrôle de formulaire ou conteneur auquel la ligne ou la forme a été ajoutée.

Lorsque vous créez une ligne ou une forme au moment de l'exécution à l'aide de la méthode New, vous devez définir la propriété Parent du contrôle sur un ShapeContainer. Si un ShapeContainer existe déjà pour le formulaire ou le conteneur, vous devez définir la propriété Parent sur celle de ShapeContainer. Si aucun ShapeContainer n'existe, vous pouvez créer un ShapeContainer en utilisant la méthode New et définir sa propriété Parent sur le formulaire ou le conteneur.

Remarque :

Prenez garde de ne pas créer plusieurs ShapeContainer par formulaire ou conteneur car cela pourrait entraîner un comportement inattendu. Si vous ajoutez un contrôle Line ou Shape à un formulaire ou un conteneur au moment du design après avoir écrit un code pour en créer un par programme, vous devez modifier ce code pour utiliser le ShapeContainer créé par le concepteur.

Exemples

L'exemple suivant vérifie si un ShapeContainer existe et définit la propriété Parent d'un contrôle OvalShape créée au moment de l'exécution à l'aide de la méthode 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);
}

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres ShapeContainer

Microsoft.VisualBasic.PowerPacks, espace de noms

Autres ressources

Introduction aux contrôles Line et Shape (Visual Studio)

Comment : dessiner des lignes avec le contrôle LineShape (Visual Studio)

Comment : dessiner des formes avec les contrôles OvalShape et RectangleShape (Visual Studio)