ControlDesigner Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Rozšiřuje chování režimu návrhu objektu 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
- Dědičnost
- Odvozené
Příklady
Následující příklad ControlDesigner implementace ukazuje zpracování MouseEnter
a MouseLeave
události, kreslení na ovládací prvek z kódu návrháře a použití části IDesignerFilter rozhraní k přidání vlastnosti ovládacího prvku v době návrhu. Následující vzorový kód obsahuje návrháře a ukázkový uživatelský ovládací prvek přidružený k návrháři. Chcete-li vytvořit tuto ukázku, zkompilujte ukázku do knihovny tříd, přidejte odkaz na knihovnu na projekt Modelu Windows Forms, přidejte ovládací prvek do sady nástrojů a přidejte instanci ovládacího prvku do formuláře. Když přejdete na ovládací prvek, vnitřní obrys obvodu ovládacího prvku je zvýrazněn a barva použitá k vykreslení obrysu odpovídá OutlineColor
vlastnosti, kterou návrhář přidal do vlastností uvedených pro ovládací prvek.
Přidejte odkaz na sestavení System.Design pro kompilaci příkladu kódu.
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
Poznámky
ControlDesigner poskytuje základní třídu pro návrháře komponent, které jsou odvozeny z Control. Kromě metod a funkcí zděděných z ComponentDesigner třídy poskytuje ControlDesigner další metody pro podporu rozšíření a změny chování přidruženého Control v době návrhu.
Návrháře můžete přidružit k typu pomocí DesignerAttribute. Přehled přizpůsobení chování při návrhu najdete v tématu Rozšíření podpory Design-Time.
Konstruktory
ControlDesigner() |
Inicializuje novou instanci ControlDesigner třídy . |
Pole
accessibilityObj |
Určuje objekt usnadnění pro návrháře. |
InvalidPoint |
Definuje místní Point , která představuje hodnoty neplatného Pointobjektu . |
Vlastnosti
AccessibilityObject |
AccessibleObject Získá přiřazené ovládacímu prvku. |
ActionLists |
Získá seznamy akcí v době návrhu podporované komponentou přidruženou k návrháři. (Zděděno od ComponentDesigner) |
AssociatedComponents |
Získá kolekci komponent přidružených k komponentě spravované návrhářem. |
AutoResizeHandles |
Získá nebo nastaví hodnotu označující, zda přidělení úchytu pro změnu velikosti závisí na hodnotě AutoSize vlastnosti. |
BehaviorService |
BehaviorService Získá z návrhového prostředí. |
Component |
Získá komponentu, která tento návrhář navrhuje. (Zděděno od ComponentDesigner) |
Control |
Získá ovládací prvek, který návrhář navrhuje. |
EnableDragRect |
Získá hodnotu označující, zda lze přetáhnout obdélníky na tuto komponentu návrháře. |
InheritanceAttribute |
Získá z InheritanceAttribute návrháře. |
InheritanceAttribute |
Získá atribut, který označuje typ dědičnosti přidružené komponenty. (Zděděno od ComponentDesigner) |
Inherited |
Získá hodnotu označující, zda je tato součást zděděna. (Zděděno od ComponentDesigner) |
ParentComponent |
Získá nadřazenou komponentu ControlDesignerpro . |
ParentComponent |
Získá nadřazenou komponentu pro tohoto návrháře. (Zděděno od ComponentDesigner) |
ParticipatesWithSnapLines |
Získá hodnotu označující, zda ControlDesigner umožní zarovnání čáry během operace přetažení. |
SelectionRules |
Získá pravidla výběru, které označují možnosti pohybu součásti. |
SetTextualDefaultProperty |
Rozšiřuje chování režimu návrhu objektu Control. (Zděděno od ComponentDesigner) |
ShadowProperties |
Získá kolekci hodnot vlastností, které přepíší nastavení uživatele. (Zděděno od ComponentDesigner) |
SnapLines |
Získá seznam SnapLine objektů představujících významné body zarovnání pro tento ovládací prvek. |
Verbs |
Získá příkazy v době návrhu podporované komponentou, která je přidružena k návrháři. (Zděděno od ComponentDesigner) |
Metody
BaseWndProc(Message) |
Zpracovává zprávy systému Windows. |
CanBeParentedTo(IDesigner) |
Určuje, zda lze ovládací prvek tohoto návrháře nadřazený ovládacím prvku zadaného návrháře. |
DefWndProc(Message) |
Poskytuje výchozí zpracování zpráv systému Windows. |
DisplayError(Exception) |
Zobrazí informace o zadané výjimce pro uživatele. |
Dispose() |
Uvolní všechny prostředky používané nástrojem ComponentDesigner. (Zděděno od ComponentDesigner) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané nástrojem ControlDesigner a volitelně uvolní spravované prostředky. |
DoDefaultAction() |
Vytvoří podpis metody v souboru zdrojového kódu pro výchozí událost v komponentě a přejde kurzor uživatele do daného umístění. (Zděděno od ComponentDesigner) |
EnableDesignMode(Control, String) |
Umožňuje funkci doby návrhu pro podřízený ovládací prvek. |
EnableDragDrop(Boolean) |
Povolí nebo zakáže podporu přetažení pro navržený ovládací prvek. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetControlGlyph(GlyphSelectionType) |
Vrátí hodnotu ControlBodyGlyph představující hranice tohoto ovládacího prvku. |
GetGlyphs(GlyphSelectionType) |
Získá kolekci Glyph objektů představujících ohraničení výběru a úchyty pro standardní ovládací prvek. |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetHitTest(Point) |
Určuje, zda má ovládací prvek zpracovat kliknutí myší v zadaném bodě. |
GetService(Type) |
Pokusí se načíst zadaný typ služby z webu režimu návrhu komponenty návrháře. (Zděděno od ComponentDesigner) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
HookChildControls(Control) |
Směruje zprávy z podřízených ovládacích prvků zadaného ovládacího prvku do návrháře. |
Initialize(IComponent) |
Inicializuje návrháře se zadanou komponentou. |
InitializeExistingComponent(IDictionary) |
Znovu inicializuje existující komponentu. |
InitializeExistingComponent(IDictionary) |
Znovu inicializuje existující komponentu. (Zděděno od ComponentDesigner) |
InitializeNewComponent(IDictionary) |
Inicializuje nově vytvořenou komponentu. |
InitializeNewComponent(IDictionary) |
Inicializuje nově vytvořenou komponentu. (Zděděno od ComponentDesigner) |
InitializeNonDefault() |
Inicializuje vlastnosti ovládacího prvku na hodnoty, které nejsou výchozí. |
InitializeNonDefault() |
Zastaralé.
Zastaralé.
Inicializuje nastavení pro importovanou komponentu, která je již inicializována do jiných než výchozích nastavení. (Zděděno od ComponentDesigner) |
InternalControlDesigner(Int32) |
Vrátí návrháře interních ovládacích prvků se zadaným indexem v objektu ControlDesigner. |
InvokeGetInheritanceAttribute(ComponentDesigner) |
Získá ze zadaného ComponentDesignerobjektu InheritanceAttribute . (Zděděno od ComponentDesigner) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
NumberOfInternalControlDesigners() |
Vrátí počet návrhářů interních ovládacích prvků v .ControlDesigner |
OnContextMenu(Int32, Int32) |
Zobrazuje místní nabídku a poskytuje možnost provést další zpracování, když se má místní nabídka zobrazit. |
OnCreateHandle() |
Poskytuje možnost provést další zpracování ihned po vytvoření ovládacího úchytu. |
OnDragComplete(DragEventArgs) |
Obdrží volání k vyčištění operace přetažení. |
OnDragDrop(DragEventArgs) |
Přijme volání při přetažení objektu do zobrazení návrháře ovládacího prvku. |
OnDragEnter(DragEventArgs) |
Přijme volání, když operace přetažení přejde do zobrazení návrháře ovládacího prvku. |
OnDragLeave(EventArgs) |
Přijme volání, když operace přetažení opustí zobrazení návrháře ovládacího prvku. |
OnDragOver(DragEventArgs) |
Přijme volání při přetažení objektu přes zobrazení návrháře ovládacího prvku. |
OnGiveFeedback(GiveFeedbackEventArgs) |
Přijme volání, když probíhá operace přetažení, která poskytuje vizuální upozornění na základě umístění myši, zatímco probíhá operace přetažení. |
OnMouseDragBegin(Int32, Int32) |
Přijme volání v reakci na stisknutí a podržení levého tlačítka myši nad komponentou. |
OnMouseDragEnd(Boolean) |
Přijme volání na konci operace přetažení, aby se operace dokončila nebo zrušila. |
OnMouseDragMove(Int32, Int32) |
Obdrží volání pro každý pohyb myši během operace přetažení. |
OnMouseEnter() |
Přijme hovor při prvním vstupu myši do ovládacího prvku. |
OnMouseHover() |
Přijme hovor po najetí myší na ovládací prvek. |
OnMouseLeave() |
Přijme hovor při prvním vstupu myši do ovládacího prvku. |
OnPaintAdornments(PaintEventArgs) |
Obdrží volání, když ovládací prvek, který návrhář spravuje, namaloval svůj povrch, aby návrhář mohl nakreslit jakékoli další doplňky na ovládací prvek. |
OnSetComponentDefaults() |
Zastaralé.
Zastaralé.
Volána při inicializaci návrháře. |
OnSetCursor() |
Přijme hovor pokaždé, když je potřeba nastavit kurzor. |
PostFilterAttributes(IDictionary) |
Umožňuje návrháři změnit nebo odebrat položky ze sady atributů, které zveřejňuje prostřednictvím TypeDescriptor. (Zděděno od ComponentDesigner) |
PostFilterEvents(IDictionary) |
Umožňuje návrháři změnit nebo odebrat položky ze sady událostí, které zveřejňuje prostřednictvím TypeDescriptor. (Zděděno od ComponentDesigner) |
PostFilterProperties(IDictionary) |
Umožňuje návrháři změnit nebo odebrat položky ze sady vlastností, které zveřejňuje prostřednictvím objektu TypeDescriptor. (Zděděno od ComponentDesigner) |
PreFilterAttributes(IDictionary) |
Umožňuje návrháři přidat do sady atributů, které zveřejňuje prostřednictvím TypeDescriptor. (Zděděno od ComponentDesigner) |
PreFilterEvents(IDictionary) |
Umožňuje návrháři přidat do sady událostí, které zveřejňuje prostřednictvím .TypeDescriptor (Zděděno od ComponentDesigner) |
PreFilterProperties(IDictionary) |
Upraví sadu vlastností, které komponenta zveřejňuje prostřednictvím objektu TypeDescriptor. |
RaiseComponentChanged(MemberDescriptor, Object, Object) |
IComponentChangeService Oznámí, že tato komponenta byla změněna. (Zděděno od ComponentDesigner) |
RaiseComponentChanging(MemberDescriptor) |
IComponentChangeService Oznámí, že se tato komponenta bude měnit. (Zděděno od ComponentDesigner) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
UnhookChildControls(Control) |
Směruje zprávy pro podřízené položky zadaného ovládacího prvku do každého ovládacího prvku, nikoli do nadřazeného návrháře. |
WndProc(Message) |
Zpracovává zprávy systému Windows a volitelně je směruje do ovládacího prvku. |