Partilhar via


Classe ShapeContainer

Fornece um contêiner para LineShape, OvalShape, RectangleShape controles e para qualquer Outros controle que deriva de Shape.

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

Sintaxe

<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

Comentários

A LineShape, OvalShape, ou RectangleShape controle pode estar contido em apenas um ShapeContainer objeto, que atua sistema autônomo uma tela para controles de linha e forma.

Quando você adiciona uma linha ou forma a um formulário ou o contêiner em time de design, um ShapeContainer é criado automaticamente se já não existir. The Parent propriedade de linha ou forma é conjunto ao ShapeContainer. The Parent propriedade das ShapeContainer é conjunto ao controle de formulário ou contêiner ao qual a linha ou forma foi adicionada.

Quando você cria uma linha ou forma em time de execução usando o New do método, o controle Parent propriedade deve ser conjunto para um ShapeContainer. If a ShapeContainer já existe para o formulário ou contêiner, você deve conjunto o Parent propriedade para que ShapeContainer. Se nenhum ShapeContainer existe, você pode criar um ShapeContainer usando o New método e conjunto seu Parent propriedade para o formulário ou contêiner.

Observação:

Tenha cuidado Se você não fizer isso criar mais de um ShapeContainer para cada formulário ou o contêiner; isso pode apresentar um comportamento inesperado. Se você adicionar uma linha de time de design ou o controle de forma a um formulário ou contêiner depois de escrever código para criar um programaticamente, você deve modificar esse código para usar o ShapeContainer criado pelo designer.

Exemplos

O exemplo a seguir verifica um existenteShapeContainer e define o Parent propriedade de um OvalShape controle criado em time de execução usando o New método.

PrivateSub Form1_Load(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) HandlesMyBase.Load
    Dim NewOval AsNew OvalShape
    Dim i AsIntegerDim found AsBoolean    ' Loop through the Controls collection.For i = 0 ToMe.Controls.Count - 1
        ' If a ShapeContainer is found, make it the parent.IfTypeOf Controls.Item(i) Is ShapeContainer Then
            NewOval.Parent = Controls.Item(i)
            found = TrueExitForEndIfNext    ' If no ShapeContainer is found, create one and set the parents.If found = FalseThenDim sc AsNew ShapeContainer
        sc.Parent = Me
        NewOval.Parent = sc
    EndIf
    NewOval.Size = New Size(200, 300)
EndSub
privatevoid 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);
}

Hierarquia de herança

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

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Membros ShapeContainer

Namespace Microsoft.VisualBasic.PowerPacks

Outros recursos

Introdução à linha e controles de forma (Visual Studio)

Como: Desenhar linhas com o Controlarar de LineShape (Visual Studio)

Como: Desenhar formas com a OvalShape e controles de RectangleShape (Visual Studio)