ControlDesigner Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Extiende el comportamiento del modo de diseño de .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
- Herencia
- Derivado
Ejemplos
En la siguiente implementación de ejemplo ControlDesigner se muestra el control MouseEnter y MouseLeave los eventos, el dibujo de un control del código del diseñador y el uso de parte de la IDesignerFilter interfaz para agregar una propiedad para el control en tiempo de diseño. El código de ejemplo siguiente contiene un diseñador y un control de usuario de ejemplo asociado al diseñador. Para compilar este ejemplo, compile el ejemplo en una biblioteca de clases, agregue una referencia a la biblioteca a un proyecto de Windows Forms, agregue el control al Cuadro de herramientas y agregue una instancia del control al formulario. Al apuntar al control, se resalta el contorno interno del perímetro del control y el color usado para dibujar el esquema corresponde a la OutlineColor propiedad que el diseñador ha agregado a las propiedades enumeradas para el control.
Agregue una referencia al ensamblado System.Design para compilar el ejemplo 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
Comentarios
ControlDesigner proporciona una clase base para diseñadores de componentes que derivan de Control. Además de los métodos y la funcionalidad heredados de la ComponentDesigner clase , ControlDesigner proporciona métodos adicionales para admitir la extensión y modificación del comportamiento de un asociado Control en tiempo de diseño.
Puede asociar un diseñador a un tipo mediante .DesignerAttribute
Constructores
| Nombre | Description |
|---|---|
| ControlDesigner() |
Inicializa una nueva instancia de la clase ControlDesigner. |
Campos
| Nombre | Description |
|---|---|
| accessibilityObj |
Especifica el objeto de accesibilidad para el diseñador. |
| InvalidPoint |
Define un valor local Point que representa los valores de un objeto no válido Point. |
Propiedades
| Nombre | Description |
|---|---|
| AccessibilityObject |
Obtiene el AccessibleObject asignado al control . |
| ActionLists |
Obtiene las listas de acciones en tiempo de diseño compatibles con el componente asociado al diseñador. (Heredado de ComponentDesigner) |
| AssociatedComponents |
Obtiene la colección de componentes asociados al componente administrado por el diseñador. |
| AutoResizeHandles |
Obtiene o establece un valor que indica si el cambio de tamaño depende del valor de la AutoSize propiedad . |
| BehaviorService |
Obtiene del BehaviorService entorno de diseño. |
| Component |
Obtiene el componente que este diseñador está diseñando. (Heredado de ComponentDesigner) |
| Control |
Obtiene el control que el diseñador está diseñando. |
| EnableDragRect |
Obtiene un valor que indica si los rectángulos de arrastre se pueden dibujar en este componente de diseñador. |
| InheritanceAttribute |
Obtiene del InheritanceAttribute diseñador. |
| InheritanceAttribute |
Obtiene un atributo que indica el tipo de herencia del componente asociado. (Heredado de ComponentDesigner) |
| Inherited |
Obtiene un valor que indica si se hereda este componente. (Heredado de ComponentDesigner) |
| ParentComponent |
Obtiene el componente primario de ControlDesigner. |
| ParticipatesWithSnapLines |
Obtiene un valor que indica si permitirá la ControlDesigner alineación de la línea de ajuste durante una operación de arrastre. |
| SelectionRules |
Obtiene las reglas de selección que indican las funcionalidades de movimiento de un componente. |
| SetTextualDefaultProperty |
Extiende el comportamiento del modo de diseño de .Control (Heredado de ComponentDesigner) |
| ShadowProperties |
Obtiene una colección de valores de propiedad que invalidan la configuración del usuario. (Heredado de ComponentDesigner) |
| SnapLines |
Obtiene una lista de SnapLine objetos que representan puntos de alineación significativos para este control. |
| Verbs |
Obtiene los verbos en tiempo de diseño admitidos por el componente asociado al diseñador. (Heredado de ComponentDesigner) |
Métodos
| Nombre | Description |
|---|---|
| BaseWndProc(Message) |
Procesa Windows mensajes. |
| CanBeParentedTo(IDesigner) |
Indica si el control del diseñador puede ser primario por el control del diseñador especificado. |
| DefWndProc(Message) |
Proporciona procesamiento predeterminado para Windows mensajes. |
| DisplayError(Exception) |
Muestra información sobre la excepción especificada al usuario. |
| Dispose() |
Libera todos los recursos usados por .ComponentDesigner (Heredado de ComponentDesigner) |
| Dispose(Boolean) |
Libera los recursos no administrados utilizados por ControlDesigner y, opcionalmente, libera los recursos administrados. |
| DoDefaultAction() |
Crea una firma de método en el archivo de código fuente para el evento predeterminado en el componente y navega el cursor del usuario a esa ubicación. (Heredado de ComponentDesigner) |
| EnableDesignMode(Control, String) |
Habilita la funcionalidad de tiempo de diseño para un control secundario. |
| EnableDragDrop(Boolean) |
Habilita o deshabilita la compatibilidad con arrastrar y colocar para el control que se está diseñando. |
| Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
| GetControlGlyph(GlyphSelectionType) |
Devuelve un objeto ControlBodyGlyph que representa los límites de este control. |
| GetGlyphs(GlyphSelectionType) |
Obtiene una colección de Glyph objetos que representan los bordes de selección y los identificadores de toma de un control estándar. |
| GetHashCode() |
Sirve como función hash predeterminada. (Heredado de Object) |
| GetHitTest(Point) |
Indica si el control debe controlar un clic del mouse en el punto especificado. |
| GetService(Type) |
Intenta recuperar el tipo de servicio especificado del sitio del modo de diseño del componente del diseñador. (Heredado de ComponentDesigner) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| HookChildControls(Control) |
Enruta los mensajes de los controles secundarios del control especificado al diseñador. |
| Initialize(IComponent) |
Inicializa el diseñador con el componente especificado. |
| InitializeExistingComponent(IDictionary) |
Vuelve a inicializar un componente existente. |
| InitializeNewComponent(IDictionary) |
Inicializa un componente recién creado. |
| InitializeNonDefault() |
Inicializa las propiedades del control en los valores no predeterminados. |
| InitializeNonDefault() |
Obsoletos.
Obsoletos.
Inicializa la configuración de un componente importado que ya se ha inicializado en la configuración distinta de los valores predeterminados. (Heredado de ComponentDesigner) |
| InternalControlDesigner(Int32) |
Devuelve el diseñador de controles internos con el índice especificado en .ControlDesigner |
| InvokeGetInheritanceAttribute(ComponentDesigner) |
Obtiene del InheritanceAttribute objeto especificado ComponentDesigner. (Heredado de ComponentDesigner) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| NumberOfInternalControlDesigners() |
Devuelve el número de diseñadores de controles internos en .ControlDesigner |
| OnContextMenu(Int32, Int32) |
Muestra el menú contextual y ofrece una oportunidad de realizar un procesamiento adicional cuando el menú contextual está a punto de mostrarse. |
| OnCreateHandle() |
Proporciona una oportunidad para realizar un procesamiento adicional inmediatamente después de crear el identificador de control. |
| OnDragComplete(DragEventArgs) |
Recibe una llamada para limpiar una operación de arrastrar y colocar. |
| OnDragDrop(DragEventArgs) |
Recibe una llamada cuando se coloca un objeto de arrastrar y colocar en la vista del diseñador de controles. |
| OnDragEnter(DragEventArgs) |
Recibe una llamada cuando una operación de arrastrar y colocar entra en la vista del diseñador de controles. |
| OnDragLeave(EventArgs) |
Recibe una llamada cuando una operación de arrastrar y colocar deja la vista del diseñador de controles. |
| OnDragOver(DragEventArgs) |
Recibe una llamada cuando se arrastra un objeto de arrastrar y colocar sobre la vista del diseñador de controles. |
| OnGiveFeedback(GiveFeedbackEventArgs) |
Recibe una llamada cuando una operación de arrastrar y colocar está en curso para proporcionar indicaciones visuales basadas en la ubicación del mouse mientras una operación de arrastre está en curso. |
| OnMouseDragBegin(Int32, Int32) |
Recibe una llamada en respuesta al botón izquierdo del mouse que se está presionando y manteniendo mientras se mantiene sobre el componente. |
| OnMouseDragEnd(Boolean) |
Recibe una llamada al final de una operación de arrastrar y colocar para completar o cancelar la operación. |
| OnMouseDragMove(Int32, Int32) |
Recibe una llamada para cada movimiento del mouse durante una operación de arrastrar y colocar. |
| OnMouseEnter() |
Recibe una llamada cuando el mouse entra por primera vez en el control. |
| OnMouseHover() |
Recibe una llamada después de que el mouse mantenga el puntero sobre el control. |
| OnMouseLeave() |
Recibe una llamada cuando el mouse entra por primera vez en el control. |
| OnPaintAdornments(PaintEventArgs) |
Recibe una llamada cuando el control que administra el diseñador ha pintado su superficie para que el diseñador pueda pintar cualquier adorno adicional sobre el control. |
| OnSetComponentDefaults() |
Obsoletos.
Obsoletos.
Se llama cuando se inicializa el diseñador. |
| OnSetCursor() |
Recibe una llamada cada vez que se debe establecer el cursor. |
| PostFilterAttributes(IDictionary) |
Permite que un diseñador cambie o quite elementos del conjunto de atributos que expone a través de .TypeDescriptor (Heredado de ComponentDesigner) |
| PostFilterEvents(IDictionary) |
Permite que un diseñador cambie o quite elementos del conjunto de eventos que expone a través de .TypeDescriptor (Heredado de ComponentDesigner) |
| PostFilterProperties(IDictionary) |
Permite que un diseñador cambie o quite elementos del conjunto de propiedades que expone a través de .TypeDescriptor (Heredado de ComponentDesigner) |
| PreFilterAttributes(IDictionary) |
Permite que un diseñador agregue al conjunto de atributos que expone a través de .TypeDescriptor (Heredado de ComponentDesigner) |
| PreFilterEvents(IDictionary) |
Permite que un diseñador agregue al conjunto de eventos que expone a través de .TypeDescriptor (Heredado de ComponentDesigner) |
| PreFilterProperties(IDictionary) |
Ajusta el conjunto de propiedades que expone el componente a través de .TypeDescriptor |
| RaiseComponentChanged(MemberDescriptor, Object, Object) |
Notifica a IComponentChangeService que se ha cambiado este componente. (Heredado de ComponentDesigner) |
| RaiseComponentChanging(MemberDescriptor) |
Notifica que IComponentChangeService este componente está a punto de cambiarse. (Heredado de ComponentDesigner) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| UnhookChildControls(Control) |
Enruta los mensajes de los elementos secundarios del control especificado a cada control en lugar de a un diseñador primario. |
| WndProc(Message) |
Procesa Windows mensajes y, opcionalmente, los enruta al control. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IDesignerFilter.PostFilterAttributes(IDictionary) |
Para obtener una descripción de este miembro, consulte el PostFilterAttributes(IDictionary) método . (Heredado de ComponentDesigner) |
| IDesignerFilter.PostFilterEvents(IDictionary) |
Para obtener una descripción de este miembro, consulte el PostFilterEvents(IDictionary) método . (Heredado de ComponentDesigner) |
| IDesignerFilter.PostFilterProperties(IDictionary) |
Para obtener una descripción de este miembro, consulte el PostFilterProperties(IDictionary) método . (Heredado de ComponentDesigner) |
| IDesignerFilter.PreFilterAttributes(IDictionary) |
Para obtener una descripción de este miembro, consulte el PreFilterAttributes(IDictionary) método . (Heredado de ComponentDesigner) |
| IDesignerFilter.PreFilterEvents(IDictionary) |
Para obtener una descripción de este miembro, consulte el PreFilterEvents(IDictionary) método . (Heredado de ComponentDesigner) |
| IDesignerFilter.PreFilterProperties(IDictionary) |
Para obtener una descripción de este miembro, consulte el PreFilterProperties(IDictionary) método . (Heredado de ComponentDesigner) |
| ITreeDesigner.Children |
Para obtener una descripción de este miembro, vea la Children propiedad . (Heredado de ComponentDesigner) |
| ITreeDesigner.Parent |
Para obtener una descripción de este miembro, vea la Parent propiedad . (Heredado de ComponentDesigner) |