ControlDesigner Classe

Definição

Estende o comportamento do modo de design de um Control.

public ref class ControlDesigner : System::ComponentModel::Design::ComponentDesigner
public class ControlDesigner : System.ComponentModel.Design.ComponentDesigner
type ControlDesigner = class
    inherit ComponentDesigner
Public Class ControlDesigner
Inherits ComponentDesigner
Herança
ControlDesigner
Derivado

Exemplos

A implementação de exemplo ControlDesigner a seguir demonstra o tratamento MouseEnter e MouseLeave os eventos, desenhando em um controle do código do designer e usando parte da IDesignerFilter interface para adicionar uma propriedade para o controle em tempo de design. O código de exemplo a seguir contém um designer e um controle de usuário de exemplo associado ao designer. Para compilar este exemplo, compile o exemplo em uma biblioteca de classes, adicione uma referência à biblioteca a um projeto do Windows Forms, adicione o controle à Caixa de Ferramentas e adicione uma instância do controle ao formulário. Quando você aponta para o controle, a estrutura de tópicos interna do perímetro do controle é realçada e a cor usada para desenhar a estrutura de tópicos corresponde à OutlineColor propriedade que o designer adicionou às propriedades listadas para o controle.

Adicione uma referência ao assembly System.Design para compilar o exemplo de código.

using namespace System;
using namespace System::ComponentModel;
using namespace System::ComponentModel::Design;
using namespace System::Collections;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Windows::Forms::Design;
using namespace System::Security::Permissions;

   public ref class TestControlDesigner: public System::Windows::Forms::Design::ControlDesigner
   {
   private:
      bool mouseover;
      Color lineColor;

   public:

      property Color OutlineColor 
      {
         Color get()
         {
            return lineColor;
         }

         void set( Color value )
         {
            lineColor = value;
         }

      }
      TestControlDesigner()
      {
         mouseover = false;
         lineColor = Color::White;
      }

   protected:
      virtual void OnMouseEnter() override
      {
         this->mouseover = true;
         this->Control->Refresh();
      }

      virtual void OnMouseLeave() override
      {
         this->mouseover = false;
         this->Control->Refresh();
      }

      virtual void OnPaintAdornments( System::Windows::Forms::PaintEventArgs^ pe ) override
      {
         if ( this->mouseover )
                  pe->Graphics->DrawRectangle( gcnew Pen( gcnew SolidBrush( this->lineColor ),6 ), 0, 0, this->Control->Size.Width, this->Control->Size.Height );
      }

   protected:
      [ReflectionPermission(SecurityAction::Demand, Flags=ReflectionPermissionFlag::MemberAccess)]
      virtual void PreFilterProperties( System::Collections::IDictionary^ properties ) override
      {
         properties->Add( "OutlineColor", TypeDescriptor::CreateProperty( TestControlDesigner::typeid, "OutlineColor", System::Drawing::Color::typeid, nullptr ) );
      }
   };

   [DesignerAttribute(TestControlDesigner::typeid)]
   public ref class TestControl: public System::Windows::Forms::UserControl
   {
   private:
      System::ComponentModel::Container^ components;

   public:
      TestControl()
      {
         components = gcnew System::ComponentModel::Container;
      }

   protected:
      ~TestControl()
      {
         if ( components != nullptr )
         {
            delete components;
         }
      }
   };
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace ControlDesignerExample
{
    // ExampleControlDesigner is an example control designer that 
    // demonstrates basic functions of a ControlDesigner. 
    public class ExampleControlDesigner  : System.Windows.Forms.Design.ControlDesigner
    {
        // This Boolean state reflects whether the mouse is over the control.
        private bool mouseover = false;
        // This color is a private field for the OutlineColor property.
        private Color lineColor = Color.White;

        // This color is used to outline the control when the mouse is 
        // over the control.
        public Color OutlineColor
        {
            get
            {
                return lineColor;
            }
            set
            {
                lineColor = value;
            }
        }

        public ExampleControlDesigner()
        {
        }

        // Sets a value and refreshes the control's display when the 
        // mouse position enters the area of the control.
        protected override void OnMouseEnter()
        {
            this.mouseover = true;
            this.Control.Refresh();
        }    

        // Sets a value and refreshes the control's display when the 
        // mouse position enters the area of the control.        
        protected override void OnMouseLeave()
        {
            this.mouseover = false;            
            this.Control.Refresh();
        }        
        
        // Draws an outline around the control when the mouse is 
        // over the control.    
        protected override void OnPaintAdornments(System.Windows.Forms.PaintEventArgs pe)
        {
            if (this.mouseover)
            {
                pe.Graphics.DrawRectangle(
                    new Pen(new SolidBrush(this.lineColor), 6), 
                    0, 
                    0, 
                    this.Control.Size.Width, 
                    this.Control.Size.Height);
            }
        }

        // Adds a property to this designer's control at design time 
        // that indicates the outline color to use. 
        // The DesignOnlyAttribute ensures that the OutlineColor
        // property is not serialized by the designer.
        protected override void PreFilterProperties(System.Collections.IDictionary properties)
        {
            PropertyDescriptor pd = TypeDescriptor.CreateProperty(
                typeof(ExampleControlDesigner), 
                "OutlineColor",
                typeof(System.Drawing.Color),
                new Attribute[] { new DesignOnlyAttribute(true) });

            properties.Add("OutlineColor", pd);
        }
    }

    // This example control demonstrates the ExampleControlDesigner.
    [DesignerAttribute(typeof(ExampleControlDesigner))]
    public class ExampleControl : System.Windows.Forms.UserControl
    {        
        private System.ComponentModel.Container components = null;

        public ExampleControl()
        {
            components = new System.ComponentModel.Container();
        }

        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if( components != null )
                components.Dispose();
            }
            base.Dispose( disposing );
        }
    }
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Collections
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.Design

Namespace ControlDesignerExample
    _
    ' ExampleControlDesigner is an example control designer that 
    ' demonstrates basic functions of a ControlDesigner.
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    Public Class ExampleControlDesigner
        Inherits System.Windows.Forms.Design.ControlDesigner

        ' This boolean state reflects whether the mouse is over the control.
        Private mouseover As Boolean = False
        ' This color is a private field for the OutlineColor property.
        Private lineColor As Color = Color.White

        ' This color is used to outline the control when the mouse is 
        ' over the control.
        Public Property OutlineColor() As Color
            Get
                Return lineColor
            End Get
            Set(ByVal Value As Color)
                lineColor = Value
            End Set
        End Property

        Public Sub New()
        End Sub

        ' Sets a value and refreshes the control's display when the 
        ' mouse position enters the area of the control.
        Protected Overrides Sub OnMouseEnter()
            Me.mouseover = True
            Me.Control.Refresh()
        End Sub

        ' Sets a value and refreshes the control's display when the 
        ' mouse position enters the area of the control.		
        Protected Overrides Sub OnMouseLeave()
            Me.mouseover = False
            Me.Control.Refresh()
        End Sub

        ' Draws an outline around the control when the mouse is 
        ' over the control.	
        Protected Overrides Sub OnPaintAdornments(ByVal pe As System.Windows.Forms.PaintEventArgs)
            If Me.mouseover Then
                pe.Graphics.DrawRectangle(New Pen(New SolidBrush(Me.lineColor), 6), 0, 0, Me.Control.Size.Width, Me.Control.Size.Height)
            End If
        End Sub

        ' Adds a property to this designer's control at design time 
        ' that indicates the outline color to use.
        ' The DesignOnlyAttribute ensures that the OutlineColor
        ' property is not serialized by the designer.
        Protected Overrides Sub PreFilterProperties(ByVal properties As System.Collections.IDictionary)
            Dim pd As PropertyDescriptor = TypeDescriptor.CreateProperty( _
            GetType(ExampleControlDesigner), _
            "OutlineColor", _
            GetType(System.Drawing.Color), _
            New Attribute() {New DesignOnlyAttribute(True)})

            properties.Add("OutlineColor", pd)
        End Sub
    End Class

    ' This example control demonstrates the ExampleControlDesigner.
    <DesignerAttribute(GetType(ExampleControlDesigner))> _
     Public Class ExampleControl
        Inherits System.Windows.Forms.UserControl
        Private components As System.ComponentModel.Container = Nothing

        Public Sub New()
            components = New System.ComponentModel.Container()
        End Sub

        Protected Overloads Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If (components IsNot Nothing) Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub
    End Class

End Namespace

Comentários

ControlDesigner fornece uma classe base para designers de componentes que derivam de Control. Além dos métodos e funcionalidades herdados da ComponentDesigner classe , ControlDesigner fornece métodos adicionais para dar suporte à extensão e alteração do comportamento de um associado Control em tempo de design.

Você pode associar um designer a um tipo usando um DesignerAttribute. Para obter uma visão geral da personalização do comportamento do tempo de design, consulte Estendendo Design-Time suporte.

Construtores

ControlDesigner()

Inicializa uma nova instância da classe ControlDesigner.

Campos

accessibilityObj

Especifica o objeto de acessibilidade do designer.

InvalidPoint

Define um local Point que representa os valores de um Point inválido.

Propriedades

AccessibilityObject

Obtém o AccessibleObject atribuído ao controle.

ActionLists

Obtém as listas de ação de tempo de design com suporte pelo componente associado ao designer.

(Herdado de ComponentDesigner)
AssociatedComponents

Obtém a coleção de componentes associados ao componente gerenciado pelo designer.

AutoResizeHandles

Obtém ou define um valor que indica se redimensionar a alocação de identificador depende do valor da propriedade AutoSize.

BehaviorService

Obtém o BehaviorService do ambiente de design.

Component

Obtém o componente que deste designer está criando.

(Herdado de ComponentDesigner)
Control

Obtém o controle que o designer está criando.

EnableDragRect

Obtém um valor que indica se retângulos de arraste podem ser desenhados neste componente do designer.

InheritanceAttribute

Obtém o InheritanceAttribute do designer.

InheritanceAttribute

Obtém um atributo que indica o tipo de herança do componente associado.

(Herdado de ComponentDesigner)
Inherited

Obtém um valor que indica se este componente é herdado.

(Herdado de ComponentDesigner)
ParentComponent

Obtém o componente pai do ControlDesigner.

ParentComponent

Obtém o componente pai para este designer.

(Herdado de ComponentDesigner)
ParticipatesWithSnapLines

Obtém um valor que indica se o ControlDesigner permitirá que o alinhamento da guia de alinhamento durante uma operação do tipo arrastar.

SelectionRules

Obtém as regras de seleção que indicam os recursos de movimentação de um componente.

SetTextualDefaultProperty

Estende o comportamento do modo de design de um Control.

(Herdado de ComponentDesigner)
ShadowProperties

Obtém uma coleção de valores de propriedade que substituem as configurações do usuário.

(Herdado de ComponentDesigner)
SnapLines

Obtém uma lista de objetos SnapLine que representam os pontos de alinhamento significativos desse controle.

Verbs

Obtém os verbos de tempo de design com suporte pelo componente associado ao designer.

(Herdado de ComponentDesigner)

Métodos

BaseWndProc(Message)

Processa mensagens do Windows.

CanBeParentedTo(IDesigner)

Indica se esse controle do designer pode ter o controle do designer especificado como pai.

DefWndProc(Message)

Fornece o processamento padrão para mensagens do Windows.

DisplayError(Exception)

Exibe informações sobre a exceção especificada para o usuário.

Dispose()

Libera todos os recursos usados pelo ComponentDesigner.

(Herdado de ComponentDesigner)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo ControlDesigner e opcionalmente libera os recursos gerenciados.

DoDefaultAction()

Cria uma assinatura de método no arquivo de código-fonte para o evento padrão no componente e navega o cursor do usuário para essa localização.

(Herdado de ComponentDesigner)
EnableDesignMode(Control, String)

Habilita a funcionalidade de tempo de design para um controle filho.

EnableDragDrop(Boolean)

Habilita ou desabilita o suporte do tipo "arrastar e soltar" do controle que está sendo criado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetControlGlyph(GlyphSelectionType)

Retorna um ControlBodyGlyph que representa os limites desse controle.

GetGlyphs(GlyphSelectionType)

Obtém uma coleção de objetos Glyph que representam as bordas de seleção e as alças de captura de um controle padrão.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetHitTest(Point)

Indica se um clique do mouse no ponto especificado deve ser manipulado pelo controle.

GetService(Type)

Tenta recuperar o tipo de serviço especificado do site no modo de design do componente do designer.

(Herdado de ComponentDesigner)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
HookChildControls(Control)

Encaminha mensagens dos controles filho do controle especificado para o designer.

Initialize(IComponent)

Inicializa o designer com o componente especificado.

InitializeExistingComponent(IDictionary)

Reinicializa um componente existente.

InitializeExistingComponent(IDictionary)

Reinicializa um componente existente.

(Herdado de ComponentDesigner)
InitializeNewComponent(IDictionary)

Inicializa um componente recém-criado.

InitializeNewComponent(IDictionary)

Inicializa um componente recém-criado.

(Herdado de ComponentDesigner)
InitializeNonDefault()

Inicializa as propriedades do controle com qualquer valor não padrão.

InitializeNonDefault()
Obsoleto.
Obsoleto.

Inicializa as configurações de um componente importado que já foi inicializado para as configurações que não sejam os padrões.

(Herdado de ComponentDesigner)
InternalControlDesigner(Int32)

Retorna o designer de controle interno com o índice especificado no ControlDesigner.

InvokeGetInheritanceAttribute(ComponentDesigner)

Obtém o InheritanceAttribute do ComponentDesigner especificado.

(Herdado de ComponentDesigner)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
NumberOfInternalControlDesigners()

Retorna o número de designers de controle interno no ControlDesigner.

OnContextMenu(Int32, Int32)

Mostra o menu de contexto e oferece uma oportunidade de executar processamento adicional quando o menu de contexto está prestes a ser exibido.

OnCreateHandle()

Oferece uma oportunidade de executar processamento adicional imediatamente após a criação da alça de controle.

OnDragComplete(DragEventArgs)

Recebe uma chamada para limpar uma operação do tipo "arrastar e soltar".

OnDragDrop(DragEventArgs)

Recebe uma chamada quando um objeto do tipo "arrastar e soltar" é solto no modo de exibição do designer do controle.

OnDragEnter(DragEventArgs)

Recebe uma chamada quando uma operação do tipo "arrastar e soltar" entra no modo de exibição do designer do controle.

OnDragLeave(EventArgs)

Recebe uma chamada quando uma operação do tipo "arrastar e soltar" deixa o modo de exibição do designer do controle.

OnDragOver(DragEventArgs)

Recebe uma chamada quando um objeto do tipo "arrastar e soltar" é arrastado sobre o modo de exibição do designer do controle.

OnGiveFeedback(GiveFeedbackEventArgs)

Recebe uma chamada quando uma operação do tipo "arrastar e soltar" está em andamento para fornecer dicas visuais com base no local do mouse enquanto uma operação do tipo "arrastar" está em andamento.

OnMouseDragBegin(Int32, Int32)

Recebe uma chamada em resposta quando o botão esquerdo do mouse é pressionado e segurado enquanto está sobre o componente.

OnMouseDragEnd(Boolean)

Recebe uma chamada no final de uma operação do tipo "arrastar e soltar" para concluir ou cancelar a operação.

OnMouseDragMove(Int32, Int32)

Recebe uma chamada para cada movimento do mouse durante uma operação do tipo "arrastar e soltar".

OnMouseEnter()

Recebe uma chamada quando o mouse entra pela primeira vez no controle.

OnMouseHover()

Recebe uma chamada depois que o mouse passa sobre o controle.

OnMouseLeave()

Recebe uma chamada quando o mouse entra pela primeira vez no controle.

OnPaintAdornments(PaintEventArgs)

Recebe uma chamada quando o controle que o designer está gerenciando pinta sua superfície, para que o designer possa pintar quaisquer adornos adicionais sobre o controle.

OnSetComponentDefaults()
Obsoleto.
Obsoleto.

Chamado quando o designer é inicializado.

OnSetCursor()

Recebe uma chamada cada vez que o cursor precisa ser definido.

PostFilterAttributes(IDictionary)

Permite que um designer altere ou remova itens do conjunto de atributos que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PostFilterEvents(IDictionary)

Permite que um designer altere ou remova itens do conjunto de eventos que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PostFilterProperties(IDictionary)

Permite que um designer altere ou remova itens do conjunto de propriedades que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PreFilterAttributes(IDictionary)

Permite um designer seja adicionado ao conjunto de atributos que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PreFilterEvents(IDictionary)

Permite um designer seja adicionado ao conjunto de eventos que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PreFilterProperties(IDictionary)

Ajusta o conjunto de propriedades que o componente expõe por meio de um TypeDescriptor.

RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifica o IComponentChangeService de que este componente foi alterado.

(Herdado de ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Notifica o IComponentChangeService de que este componente está prestes a ser alterado.

(Herdado de ComponentDesigner)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
UnhookChildControls(Control)

Encaminha mensagens dos filhos do controle especificado para cada controle em vez de para um designer pai.

WndProc(Message)

Processa mensagens do Windows e, opcionalmente, encaminha-as para o controle.

Implantações explícitas de interface

IDesignerFilter.PostFilterAttributes(IDictionary)

Para obter uma descrição desse membro, consulte o método PostFilterAttributes(IDictionary).

(Herdado de ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Para obter uma descrição desse membro, consulte o método PostFilterEvents(IDictionary).

(Herdado de ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Para obter uma descrição desse membro, consulte o método PostFilterProperties(IDictionary).

(Herdado de ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Para obter uma descrição desse membro, consulte o método PreFilterAttributes(IDictionary).

(Herdado de ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Para obter uma descrição desse membro, consulte o método PreFilterEvents(IDictionary).

(Herdado de ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Para obter uma descrição desse membro, consulte o método PreFilterProperties(IDictionary).

(Herdado de ComponentDesigner)
ITreeDesigner.Children

Para obter uma descrição desse membro, consulte o propriedade Children.

(Herdado de ComponentDesigner)
ITreeDesigner.Parent

Para obter uma descrição desse membro, consulte o propriedade Parent.

(Herdado de ComponentDesigner)

Aplica-se a

Confira também