Compartir a través de


ShapeContainer (Clase)

Actualización: noviembre 2007

Proporciona un contenedor para los controles LineShape, OvalShape, RectangleShape y para cualquier otro control que se derive de Shape.

Espacio de nombres:  Microsoft.VisualBasic.PowerPacks
Ensamblado:  Microsoft.VisualBasic.PowerPacks.Vs (en Microsoft.VisualBasic.PowerPacks.Vs.dll)

Sintaxis

<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

Comentarios

Únicamente puede haber un control LineShape, OvalShape o RectangleShape en un objeto ShapeContainer, que actúa como un lienzo para los controles de líneas y formas.

Al agregar una línea o una forma en tiempo de diseño a un formulario o contenedor, se crea automáticamente un ShapeContainer si no existía ya. La propiedad Parent de la línea o la forma se establece en ese ShapeContainer. La propiedad Parent de ShapeContainer se establece en el control de formulario o contenedor al que se agregó la línea o la forma.

Al crear una línea o una forma en tiempo de ejecución mediante el método New, la propiedad Parent del control debe estar establecida en ShapeContainer. Si ya existe un objeto ShapeContainer para el formulario o contenedor, debe establecer el valor de la propiedad Parent en ese objeto ShapeContainer. Si no existe ningún objeto ShapeContainer, puede crear un objeto ShapeContainer mediante el método New y establecer el valor de su propiedad Parent en el formulario o contenedor.

Nota:

Tenga cuidado de no crear más de un ShapeContainer para cada formulario o contenedor; si lo hiciera, se podría presentar un comportamiento inesperado. Si agrega un control de línea o de forma en tiempo de diseño a un formulario o contenedor después de escribir el código para crearlo mediante programación, debe modificar ese código para que utilice el ShapeContainer creado por el diseñador.

Ejemplos

En el ejemplo siguiente se comprueba si hay un ShapeContainer existente y se establece la propiedad Parent de un control OvalShape creado en tiempo de ejecución mediante el método 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);
}

Jerarquía de herencia

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

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

ShapeContainer (Miembros)

Microsoft.VisualBasic.PowerPacks (Espacio de nombres)

Otros recursos

Introducción a los controles de líneas y formas (Visual Studio)

Cómo: Dibujar líneas con el control LineShape (Visual Studio)

Cómo: Dibujar formas con los controles OvalShape y RectangleShape (Visual Studio)