2012-08-27 3 views
5

Wenn ich ein ToolTip Objekt auf meinem Formular in C# ziehen und ablegen, erhält jedes Steuerelement im Formular eine neue Eigenschaft mit dem Namen ToolTip, die vorher nicht existierte . Ich versuche, etwas wie ToolTip zu erstellen, so dass alle Steuerelemente automatisch die neue Eigenschaft erhalten, wenn ich sie auf mein Formular ziehe.Wie kann ich allen anderen Klassen eine Funktion oder Eigenschaft genau wie QuickInfo zuweisen

Ich wäre auch dankbar, wenn mir jemand eine Definition dafür geben könnte, damit ich meine Frage bearbeiten kann, um meine Absicht und Bedeutung besser zu vermitteln.

Antwort

6

Was Sie suchen ist ein "Extender Provider". Ganz einfach: Sie fügen die neue Eigenschaft nicht den Gittern der Steuerelemente hinzu. Sie implementieren stattdessen eine Schnittstelle, nach der der VS-Designer sucht, die VS anweist, wie die Eigenschaft, die in dem Raster festgelegt wird, in einen Aufruf an den Extender-Provider "umzuwandeln", um wirklich den Trick auszuführen.

Zusätzlich zu ToolTips, LayoutPanels wie TableLayoutPanel und FlowLayoutPanel tun ähnliche Dinge, sowie bestimmte andere "Meta-Fenster-Komponenten".

+0

+1 für die einfache Erklärung. –

4

ToolTip ist ein Extender Provider. Die vollständige Dokumentation zur Implementierung ist here, mit einem vollständigen Beispiel here.

ToolTip würde wahrscheinlich wie folgt umgesetzt werden:

[ProvideProperty("ToolTip", typeof(IComponent))] 
class ToolTip : IExtenderProvider {...} 
Verwandte Themen