Benutzerdefinierten Entwurfszeit-Darstellung von Steuerelementen


Wie Sie ein Steuerelement in mehreren verschiedenen schauen.

Lebst ein Steuerelement muss anders am Designtime zu, wie sie zur Laufzeit tun angezeigt. Dieses unterschiedliche Aussehen ist oft an etwas für den Entwickler für eine Runtime-Benutzer irrelevant sein wird.

Die Standardmethode zur Erreichung dieses Ziels ist das Hinzufügen von zusätzlichen Code in der OnPaint-Methode

öffentliche Klasse MyControl: Kontrolle
{
publicoverride void OnPaint (Object Sender, PaintEventArgse)
{
Normale Malerei hier
If (!. DesignMode)
{
Design-Zeit hier Malerei
Zeichnen Sie ein Rechteck um das Steuerelement
}
}
}

Obwohl dies gut funktioniert, ist es nicht ideal. Hier sind wir-Laufzeit und Entwurfszeit-Code mischen. Auch Rechnung tragen Sie, was passieren könnte, wenn ein anderes Steuerelement von dieser Klasse absteigt und OnPaint überschreibt

publicclass MyOtherControl: MyControl
{
publicoverride void OnPaint (Object Sender, PaintEventArgse)
{
Rufen Sie base, das zeichnet einer Rect um das Steuerelement
Base.OnPaint (Sender, e);
Code, der über dem Rechteck ziehen wird
}
}

Was wir wirklich brauchen ist eine Art der Zeichnung auf das Objekt e.Graphics, nachdem die OnPaint-Methode, vollständig, und auch beendet wurde nur während der Entwurfsphase.

Die Lösung liegt in der ControlDesigner-Klasse und das Designer-Attribut.

publicclass MyControlDesigner: System.Windows.Forms.Design.ControlDesigner
{
publicoverride nichtig OnPaintAdornments(PaintEventArgs e)
{
Design-Zeit hier Malerei
Zeichnen Sie ein Rechteck um das Steuerelement
}
}

Dann haben wir nur MyControlDesigner MyControl-Klasse zuordnen, beachten Sie, wie die OnPaint-Methode nicht mehr alle Entwurfszeit-Malerei in ihm hat.

[Als System.ComponentModel.Designer(typeof(MyNameSpace.MyControlDesigner))]
öffentliche Klasse MyControl: Kontrolle
{
publicoverride void OnPaint (Object Sender, PaintEventArgse)
{
Normale Malerei hier
}
}









Benutzerdefinierten Entwurfszeit-Darstellung von Steuerelementen


Benutzerdefinierten Entwurfszeit-Darstellung von Steuerelementen : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Wie Sie ein Steuerelement in mehreren verschiedenen schauen.

Lebst ein Steuerelement muss anders am Designtime zu, wie sie zur Laufzeit tun angezeigt. Dieses unterschiedliche Aussehen ist oft an etwas für den Entwickler für eine Runtime-Benutzer irrelevant sein wird.

Die Standardmethode zur Erreichung dieses Ziels ist das Hinzufügen von zusätzlichen Code in der OnPaint-Methode

öffentliche Klasse MyControl: Kontrolle
{
publicoverride void OnPaint (Object Sender, PaintEventArgse)
{
Normale Malerei hier
If (!. DesignMode)
{
Design-Zeit hier Malerei
Zeichnen Sie ein Rechteck um das Steuerelement
}
}
}

Obwohl dies gut funktioniert, ist es nicht ideal. Hier sind wir-Laufzeit und Entwurfszeit-Code mischen. Auch Rechnung tragen Sie, was passieren könnte, wenn ein anderes Steuerelement von dieser Klasse absteigt und OnPaint überschreibt

publicclass MyOtherControl: MyControl
{
publicoverride void OnPaint (Object Sender, PaintEventArgse)
{
Rufen Sie base, das zeichnet einer Rect um das Steuerelement
Base.OnPaint (Sender, e);
Code, der über dem Rechteck ziehen wird
}
}

Was wir wirklich brauchen ist eine Art der Zeichnung auf das Objekt e.Graphics, nachdem die OnPaint-Methode, vollständig, und auch beendet wurde nur während der Entwurfsphase.

Die Lösung liegt in der ControlDesigner-Klasse und das Designer-Attribut.

publicclass MyControlDesigner: System.Windows.Forms.Design.ControlDesigner
{
publicoverride nichtig OnPaintAdornments(PaintEventArgs e)
{
Design-Zeit hier Malerei
Zeichnen Sie ein Rechteck um das Steuerelement
}
}

Dann haben wir nur MyControlDesigner MyControl-Klasse zuordnen, beachten Sie, wie die OnPaint-Methode nicht mehr alle Entwurfszeit-Malerei in ihm hat.

[Als System.ComponentModel.Designer(typeof(MyNameSpace.MyControlDesigner))]
öffentliche Klasse MyControl: Kontrolle
{
publicoverride void OnPaint (Object Sender, PaintEventArgse)
{
Normale Malerei hier
}
}


Benutzerdefinierten Entwurfszeit-Darstellung von Steuerelementen

Benutzerdefinierten Entwurfszeit-Darstellung von Steuerelementen : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Benutzerdefinierten Entwurfszeit-Darstellung von Steuerelementen
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung