ControlDesigner Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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. |