2012-08-27 19 views
5

Quando trascino e rilasciano un oggetto ToolTip nel mio modulo in C#, ogni controllo sul modulo ottiene una nuova proprietà chiamata ToolTip che non esisteva prima . Sto cercando di creare qualcosa come ToolTip in modo che quando lo trascino e rilasci sul mio modulo, tutti i controlli otterranno automaticamente la sua nuova proprietà.Come posso assegnare una funzione o una proprietà a tutte le altre classi come ToolTip

Sarei anche grato se qualcuno potesse darmi una definizione per questo in modo che possa modificare la mia domanda per comunicare meglio la mia intenzione e il mio significato.

risposta

6

Quello che state cercando è un "Extender Provider". Molto semplicemente, in realtà non aggiungi la nuova proprietà alle griglie dei controlli. Invece si implementa un'interfaccia che il designer VS cerca, che dice a VS come "trasformare" la proprietà impostata nella griglia in una chiamata al fornitore di Extender per fare davvero il trucco.

Oltre a descrizioni comandi, LayoutPanel come TableLayoutPanel e FlowLayoutPanel eseguono operazioni analoghe, oltre ad alcuni altri "componenti della meta-finestra".

+0

+1 per la semplice spiegazione. –

4

ToolTip è un Extender Provider. La documentazione completa per l'implementazione è here, con un esempio completo here.

descrizione comandi sarebbe probabilmente essere implementato in questo modo:

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