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 su un controllo dal codice della finestra di progettazione e l'uso di una 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 Windows Forms, aggiungere il controllo alla casella degli strumenti e aggiungere un'istanza del controllo al modulo. Quando si punta al controllo, la struttura interna del perimetro del controllo viene evidenziata e il colore utilizzato per disegnare la struttura corrisponde alla OutlineColor
proprietà aggiunta alla 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 di base per progettisti di componenti che derivano da Control. Oltre ai metodi e alle funzionalità ereditate dalla classe, ControlDesigner fornisce metodi aggiuntivi per supportare l'estensione ComponentDesigner 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. Per una panoramica della personalizzazione del comportamento della fase di progettazione, vedere Estensione del supporto Design-Time.
Costruttori
ControlDesigner() |
Inizializza una nuova istanza della classe ControlDesigner. |
Campi
accessibilityObj |
Specifica l'oggetto Accessibility per la finestra di progettazione. |
InvalidPoint |
Definisce un oggetto Point locale che rappresenta i valori di un oggetto Point non valido. |
Proprietà
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 l'insieme dei componenti associati al componente gestito dalla finestra di progettazione. |
AutoResizeHandles |
Ottiene o imposta un valore che indica se l'assegnazione dei quadratini di ridimensionamento dipende dal valore della proprietà AutoSize. |
BehaviorService |
Ottiene l'oggetto BehaviorService dall'ambiente di progettazione. |
Component |
Ottiene il componente progettato dalla finestra di progettazione. (Ereditato da ComponentDesigner) |
Control |
Ottiene il controllo progettato tramite la finestra di progettazione. |
EnableDragRect |
Ottiene un valore che indica se è possibile creare i rettangoli di trascinamento sul 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 questo componente è ereditato. (Ereditato da ComponentDesigner) |
ParentComponent |
Ottiene il componente padre per l'oggetto ControlDesigner. |
ParentComponent |
Ottiene il componente padre per la finestra di progettazione. (Ereditato da ComponentDesigner) |
ParticipatesWithSnapLines |
Ottiene un valore che indica se l'oggetto ControlDesigner consente l'allineamento con guide durante un'operazione di trascinamento. |
SelectionRules |
Ottiene le regole di selezione che indicano funzioni di spostamento di un componente. |
SetTextualDefaultProperty |
Estende il comportamento della modalità di progettazione di un oggetto Control. (Ereditato da ComponentDesigner) |
ShadowProperties |
Ottiene un insieme di valori di proprietà che eseguono l'override delle impostazioni utente. (Ereditato da ComponentDesigner) |
SnapLines |
Ottiene un elenco degli oggetti SnapLine che rappresentano punti di allineamento significativi per questo controllo. |
Verbs |
Ottiene i verbi in fase di progettazione supportati dal componente associato alla finestra di progettazione. (Ereditato da ComponentDesigner) |
Metodi
BaseWndProc(Message) |
Elabora i messaggi di Windows. |
CanBeParentedTo(IDesigner) |
Indica se il controllo di questa finestra di progettazione può essere figlio 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. |
Dispose() |
Rilascia tutte le risorse usate da ComponentDesigner. (Ereditato da ComponentDesigner) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da ControlDesigner e, facoltativamente, le risorse gestite. |
DoDefaultAction() |
Crea una firma di metodo nel file di codice sorgente per l'evento predefinito sul 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 delle operazioni di trascinamento per il controllo in fase di progettazione. |
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 degli oggetti Glyph che rappresentano i bordi di selezione e i punti di controllo per un controllo standard. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetHitTest(Point) |
Indica se il clic del mouse nel punto specificato deve essere gestito dal controllo. |
GetService(Type) |
Esegue un tentativo di recuperare il tipo di servizio specificato dal sito della modalità progettazione del componente della finestra di progettazione. (Ereditato da ComponentDesigner) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
HookChildControls(Control) |
Invia alla finestra di progettazione i messaggi dai controlli figlio del controllo specificato. |
Initialize(IComponent) |
Inizializza la finestra di progettazione con il componente specificato. |
InitializeExistingComponent(IDictionary) |
Reinizializza un componente esistente. |
InitializeExistingComponent(IDictionary) |
Reinizializza un componente esistente. (Ereditato da ComponentDesigner) |
InitializeNewComponent(IDictionary) |
Inizializza un nuovo componente creato. |
InitializeNewComponent(IDictionary) |
Inizializza un nuovo componente creato. (Ereditato da ComponentDesigner) |
InitializeNonDefault() |
Inizializza le proprietà del controllo su qualsiasi valore non predefinito. |
InitializeNonDefault() |
Obsoleti.
Obsoleti.
Inizializza le impostazioni relative a un componente importato già inizializzato per impostazioni diverse da quelle predefinite. (Ereditato da ComponentDesigner) |
InternalControlDesigner(Int32) |
Restituisce la finestra di progettazione controlli interna con l'indice specificato nell'oggetto ControlDesigner. |
InvokeGetInheritanceAttribute(ComponentDesigner) |
Ottiene l'oggetto InheritanceAttribute dell'oggetto ComponentDesigner specificato. (Ereditato da ComponentDesigner) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
NumberOfInternalControlDesigners() |
Restituisce il numero di finestre di progettazione controlli interne nell'oggetto ControlDesigner. |
OnContextMenu(Int32, Int32) |
Visualizza il menu di scelta rapida e consente di eseguire un'ulteriore elaborazione quando tale menu sta per essere visualizzato. |
OnCreateHandle() |
Consente di eseguire un'ulteriore elaborazione subito dopo la creazione dell'handle del controllo. |
OnDragComplete(DragEventArgs) |
Riceve una chiamata per la pulitura di un'operazione di trascinamento e rilascio. |
OnDragDrop(DragEventArgs) |
Riceve una chiamata quando un oggetto a trascinamento e rilascio viene rilasciato nella finestra di progettazione del controllo. |
OnDragEnter(DragEventArgs) |
Riceve una chiamata quando un'operazione di trascinamento e rilascio entra nella finestra di progettazione del controllo. |
OnDragLeave(EventArgs) |
Riceve una chiamata quando un'operazione di trascinamento e rilascio esce dalla finestra di progettazione del controllo. |
OnDragOver(DragEventArgs) |
Riceve una chiamata quando un oggetto a trascinamento e rilascio viene trascinato nella finestra di progettazione del controllo. |
OnGiveFeedback(GiveFeedbackEventArgs) |
Riceve una chiamata durante l'esecuzione di un'operazione di trascinamento e rilascio, per fornire suggerimenti visivi in base alla posizione del mouse durante il trascinamento. |
OnMouseDragBegin(Int32, Int32) |
Riceve una chiamata quando il pulsante sinistro del mouse viene tenuto premuto mentre il puntatore è posizionato sul componente. |
OnMouseDragEnd(Boolean) |
Riceve una chiamata alla fine di un'operazione di trascinamento e rilascio per completare o annullare l'operazione. |
OnMouseDragMove(Int32, Int32) |
Riceve una chiamata per ciascun movimento del mouse durante un'operazione di trascinamento e rilascio. |
OnMouseEnter() |
Riceve una chiamata quando il mouse viene posizionato per la prima volta sul controllo. |
OnMouseHover() |
Riceve una chiamata dopo il passaggio del mouse sul controllo. |
OnMouseLeave() |
Riceve una chiamata quando il mouse viene posizionato per la prima volta sul controllo. |
OnPaintAdornments(PaintEventArgs) |
Riceve una chiamata una volta che il controllo gestito dalla finestra di progettazione ha creato la relativa superficie, in modo da consentire l'uso della finestra di progettazione per aggiungere ulteriori disegni sul controllo. |
OnSetComponentDefaults() |
Obsoleti.
Obsoleti.
Viene 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 dall'insieme di attributi esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
PostFilterEvents(IDictionary) |
Consente a una finestra di progettazione di modificare o rimuovere elementi dal gruppo di eventi esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
PostFilterProperties(IDictionary) |
Consente a una finestra di progettazione di modificare o rimuovere elementi dall'insieme di proprietà esposte tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
PreFilterAttributes(IDictionary) |
Consente a una finestra di progettazione di aggiungere un insieme di attributi che vengono esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
PreFilterEvents(IDictionary) |
Consente a una finestra di progettazione di aggiungere un insieme di eventi che vengono esposti tramite un oggetto TypeDescriptor. (Ereditato da ComponentDesigner) |
PreFilterProperties(IDictionary) |
Regola l'insieme di proprietà che verrà esposto 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 questo componente sta per essere modificato. (Ereditato da ComponentDesigner) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
UnhookChildControls(Control) |
Invia i messaggi per i controlli figlio del controllo specificato a ciascun controllo anziché a una finestra di progettazione padre. |
WndProc(Message) |
Elabora i messaggi di Windows ed eventualmente li invia al controllo. |