ControlDesigner Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Estende il comportamento della modalità di progettazione di un oggetto 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
- Ereditarietà
- Derivato
Esempio
L'implementazione di esempio ControlDesigner seguente illustra la gestione MouseEnter e MouseLeave gli eventi, il disegno di un controllo dal codice della finestra di progettazione e l'utilizzo di parte dell'interfaccia IDesignerFilter per aggiungere una proprietà per il controllo in fase di progettazione. Il codice di esempio seguente contiene una finestra di progettazione e un controllo utente di esempio associato alla finestra di progettazione. Per compilare questo esempio, compilare l'esempio in una libreria di classi, aggiungere un riferimento alla libreria a un progetto di Windows Forms, aggiungere il controllo alla casella degli strumenti e aggiungere un'istanza del controllo al modulo. Quando si punta al controllo, viene evidenziato il contorno interno del perimetro del controllo e il colore utilizzato per disegnare la struttura corrisponde alla OutlineColor proprietà aggiunta dalla finestra di progettazione alle proprietà elencate per il controllo.
Aggiungere un riferimento all'assembly System.Design per compilare l'esempio di codice.
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
Commenti
ControlDesigner fornisce una classe base per le finestre di progettazione dei componenti che derivano da Control. Oltre ai metodi e alle funzionalità ereditati dalla ComponentDesigner classe , ControlDesigner fornisce metodi aggiuntivi per supportare l'estensione e la modifica del comportamento di un oggetto associato Control in fase di progettazione.
È possibile associare una finestra di progettazione a un tipo usando un oggetto DesignerAttribute.
Costruttori
| Nome | Descrizione |
|---|---|
| ControlDesigner() |
Inizializza una nuova istanza della classe ControlDesigner. |
Campi
| Nome | Descrizione |
|---|---|
| accessibilityObj |
Specifica l'oggetto accessibilità per la finestra di progettazione. |
| InvalidPoint |
Definisce un oggetto locale Point che rappresenta i valori di un oggetto non valido Point. |
Proprietà
| Nome | Descrizione |
|---|---|
| AccessibilityObject |
Ottiene l'oggetto AccessibleObject assegnato al controllo . |
| ActionLists |
Ottiene gli elenchi di azioni in fase di progettazione supportati dal componente associato alla finestra di progettazione. (Ereditato da ComponentDesigner) |
| AssociatedComponents |
Ottiene la raccolta di componenti associati al componente gestito dalla finestra di progettazione. |
| AutoResizeHandles |
Ottiene o imposta un valore che indica se l'allocazione dell'handle di ridimensionamento dipende dal valore della AutoSize proprietà . |
| BehaviorService |
Ottiene l'oggetto BehaviorService dall'ambiente di progettazione. |
| Component |
Ottiene il componente che la finestra di progettazione sta progettando. (Ereditato da ComponentDesigner) |
| Control |
Ottiene il controllo che la finestra di progettazione sta progettando. |
| EnableDragRect |
Ottiene un valore che indica se è possibile disegnare rettangoli di trascinamento in questo componente della finestra di progettazione. |
| InheritanceAttribute |
Ottiene l'oggetto InheritanceAttribute della finestra di progettazione. |
| InheritanceAttribute |
Ottiene un attributo che indica il tipo di ereditarietà del componente associato. (Ereditato da ComponentDesigner) |
| Inherited |
Ottiene un valore che indica se il componente è ereditato. (Ereditato da ComponentDesigner) |
| ParentComponent |
Ottiene il componente padre per l'oggetto ControlDesigner. |
| ParticipatesWithSnapLines |
Ottiene un valore che indica se l'oggetto consentirà l'allineamento ControlDesigner della linea di allineamento durante un'operazione di trascinamento. |
| SelectionRules |
Ottiene le regole di selezione che indicano le funzionalità di spostamento di un componente. |
| SetTextualDefaultProperty |
Estende il comportamento della modalità di progettazione di un oggetto Control. (Ereditato da ComponentDesigner) |
| ShadowProperties |
Ottiene una raccolta di valori di proprietà che eseguono l'override delle impostazioni utente. (Ereditato da ComponentDesigner) |
| SnapLines |
Ottiene un elenco di oggetti che rappresentano punti di SnapLine allineamento significativi per questo controllo. |
| Verbs |
Ottiene i verbi della fase di progettazione supportati dal componente associato alla finestra di progettazione. (Ereditato da ComponentDesigner) |
Metodi
| Nome | Descrizione |
|---|---|
| BaseWndProc(Message) |
Elabora Windows messaggi. |
| CanBeParentedTo(IDesigner) |
Indica se il controllo della finestra di progettazione può essere padre del controllo della finestra di progettazione specificata. |
| DefWndProc(Message) |
Fornisce l'elaborazione predefinita per i messaggi di Windows. |
| DisplayError(Exception) |
Visualizza informazioni sull'eccezione specificata all'utente. |
| Dispose() |
Rilascia tutte le risorse usate da ComponentDesigner. (Ereditato da ComponentDesigner) |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da ControlDesigner e, facoltativamente, rilascia le risorse gestite. |
| DoDefaultAction() |
Crea una firma del metodo nel file del codice sorgente per l'evento predefinito nel componente e sposta il cursore dell'utente in tale posizione. (Ereditato da ComponentDesigner) |
| EnableDesignMode(Control, String) |
Abilita la funzionalità della fase di progettazione per un controllo figlio. |
| EnableDragDrop(Boolean) |
Abilita o disabilita il supporto di trascinamento della selezione per il controllo progettato. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetControlGlyph(GlyphSelectionType) |
Restituisce un oggetto ControlBodyGlyph che rappresenta i limiti di questo controllo. |
| GetGlyphs(GlyphSelectionType) |
Ottiene un insieme di oggetti che rappresentano i bordi di Glyph selezione e i quadratini di controllo per un controllo standard. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetHitTest(Point) |
Indica se un clic del mouse sul punto specificato deve essere gestito dal controllo . |
| GetService(Type) |
Tenta di recuperare il tipo di servizio specificato dal sito in modalità progettazione del componente della finestra di progettazione. (Ereditato da ComponentDesigner) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| HookChildControls(Control) |
Indirizza i messaggi dai controlli figlio del controllo specificato alla finestra di progettazione. |
| Initialize(IComponent) |
Inizializza la finestra di progettazione con il componente specificato. |
| InitializeExistingComponent(IDictionary) |
Inizializza nuovamente un componente esistente. |
| InitializeNewComponent(IDictionary) |
Inizializza un componente appena creato. |
| InitializeNonDefault() |
Inizializza le proprietà del controllo su qualsiasi valore non predefinito. |
| InitializeNonDefault() |
Obsoleti.
Obsoleti.
Inizializza le impostazioni per un componente importato già inizializzato in impostazioni diverse dalle impostazioni predefinite. (Ereditato da ComponentDesigner) |
| InternalControlDesigner(Int32) |
Restituisce la finestra di progettazione dei controlli interni con l'indice specificato nell'oggetto ControlDesigner. |
| InvokeGetInheritanceAttribute(ComponentDesigner) |
Ottiene l'oggetto dell'oggetto InheritanceAttribute specificato ComponentDesigner. (Ereditato da ComponentDesigner) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| NumberOfInternalControlDesigners() |
Restituisce il numero di finestre di progettazione di controlli interni in ControlDesigner. |
| OnContextMenu(Int32, Int32) |
Mostra il menu di scelta rapida e offre l'opportunità di eseguire ulteriori elaborazioni quando il menu di scelta rapida sta per essere visualizzato. |
| OnCreateHandle() |
Offre l'opportunità di eseguire ulteriori elaborazioni immediatamente dopo la creazione dell'handle di controllo. |
| OnDragComplete(DragEventArgs) |
Riceve una chiamata per pulire un'operazione di trascinamento della selezione. |
| OnDragDrop(DragEventArgs) |
Riceve una chiamata quando un oggetto trascinamento della selezione viene rilasciato nella visualizzazione di Progettazione controlli. |
| OnDragEnter(DragEventArgs) |
Riceve una chiamata quando un'operazione di trascinamento della selezione entra nella visualizzazione progettazione controlli. |
| OnDragLeave(EventArgs) |
Riceve una chiamata quando un'operazione di trascinamento della selezione lascia la visualizzazione progettazione controlli. |
| OnDragOver(DragEventArgs) |
Riceve una chiamata quando un oggetto trascinamento della selezione viene trascinato sulla visualizzazione di Progettazione controlli. |
| OnGiveFeedback(GiveFeedbackEventArgs) |
Riceve una chiamata quando è in corso un'operazione di trascinamento della selezione per fornire segnali visivi in base alla posizione del mouse mentre è in corso un'operazione di trascinamento. |
| OnMouseDragBegin(Int32, Int32) |
Riceve una chiamata in risposta al pulsante sinistro del mouse premuto e mantenuto durante il componente. |
| OnMouseDragEnd(Boolean) |
Riceve una chiamata alla fine di un'operazione di trascinamento della selezione per completare o annullare l'operazione. |
| OnMouseDragMove(Int32, Int32) |
Riceve una chiamata per ogni movimento del mouse durante un'operazione di trascinamento della selezione. |
| OnMouseEnter() |
Riceve una chiamata quando il mouse entra per la prima volta nel controllo. |
| OnMouseHover() |
Riceve una chiamata dopo il passaggio del mouse sul controllo. |
| OnMouseLeave() |
Riceve una chiamata quando il mouse entra per la prima volta nel controllo. |
| OnPaintAdornments(PaintEventArgs) |
Riceve una chiamata quando il controllo che la finestra di progettazione gestisce ha disegnato la relativa superficie in modo che la finestra di progettazione possa disegnare eventuali ulteriori adornazioni sulla parte superiore del controllo. |
| OnSetComponentDefaults() |
Obsoleti.
Obsoleti.
Chiamato quando la finestra di progettazione viene inizializzata. |
| OnSetCursor() |
Riceve una chiamata ogni volta che è necessario impostare il cursore. |
| PostFilterAttributes(IDictionary) |
Consente a una finestra di progettazione di modificare o rimuovere elementi dal set di attributi esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
| PostFilterEvents(IDictionary) |
Consente a una finestra di progettazione di modificare o rimuovere elementi dal set di eventi esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
| PostFilterProperties(IDictionary) |
Consente a una finestra di progettazione di modificare o rimuovere elementi dal set di proprietà esposte tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
| PreFilterAttributes(IDictionary) |
Consente a una finestra di progettazione di aggiungere al set di attributi esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
| PreFilterEvents(IDictionary) |
Consente a una finestra di progettazione di aggiungere al set di eventi esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
| PreFilterProperties(IDictionary) |
Regola il set di proprietà esposte dal componente tramite un oggetto TypeDescriptor. |
| RaiseComponentChanged(MemberDescriptor, Object, Object) |
Notifica all'oggetto IComponentChangeService che questo componente è stato modificato. (Ereditato da ComponentDesigner) |
| RaiseComponentChanging(MemberDescriptor) |
Notifica all'oggetto IComponentChangeService che il componente sta per essere modificato. (Ereditato da ComponentDesigner) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| UnhookChildControls(Control) |
Indirizza i messaggi per gli elementi figlio del controllo specificato a ogni controllo anziché a una finestra di progettazione padre. |
| WndProc(Message) |
Elabora Windows messaggi e, facoltativamente, li indirizza al controllo. |