Partager via


Vue d'ensemble des fournisseurs d'extendeurs

Un fournisseur d'extendeurs est un composant qui fournit des propriétés à d'autres composants. Par exemple, lorsqu'un composant ToolTip est ajouté à un formulaire, il fournit une propriété appelée ToolTip à chaque contrôle de ce formulaire. La propriété ToolTip apparaît ensuite dans tout contrôle PropertyGrid attaché. Au moment du design, vous pouvez définir une valeur pour cette propriété.

La propriété fournie réside en réalité dans l'objet fournisseur d'extendeurs lui-même et n'est donc pas une vraie propriété du composant qu'elle modifie. Au moment du design, la propriété apparaît dans toute PropertyGrid attachée au composant modifié. En revanche, au moment de l'exécution, la propriété n'est plus accessible par le biais du composant. À la place, vous devez appeler la méthode GetToolTip sur le composant ToolTip.

Implémentation

La liste suivante décrit les étapes nécessaires à l'implémentation d'un fournisseur d'extendeurs :

  • Utilisez l'attribut ProvidePropertyAttribute pour spécifier la propriété fournie par votre fournisseur d'extendeurs.

  • Implémentez la propriété fournie.

  • Suivez les contrôles qui reçoivent la propriété fournie.

  • Implémentez l'interface IExtenderProvider.

Pour plus d'informations, consultez Comment : implémenter un fournisseur d'extendeurs. Pour obtenir un exemple complet, consultez Comment : implémenter un fournisseur d'extendeurs HelpLabel.

Attribut ProvideProperty

Le fournisseur d'extendeurs est une classe et, à ce titre, il possède ses propres propriétés et méthodes. Pour désigner une propriété comme pouvant être fournie à d'autres composants, appliquez l'attribut ProvidePropertyAttribute au niveau de la classe. Cet attribut spécifie le nom de la propriété à fournir et le type d'objet auquel elle peut être fournie.

Implémentation de la propriété fournie

Par convention, n'implémentez pas la propriété fournie en tant que propriété, mais en tant que paire de méthodes. Vous devez nommer ces méthodes GetNomPropriété et SetNomPropriété. Par exemple, si l'implémentation de votre fournisseur d'extendeurs fournit une propriété appelée DemoText, nommez les méthodes GetDemoText et SetDemoText.

Ces méthodes acceptent un seul paramètre Component qui vous permet de contrôler quelle valeur de propriété est assignée à quel composant.

Suivi des contrôles qui reçoivent la propriété fournie

L'implémentation de la propriété fournie exige un objet IDictionary ou un autre objet collection pour l'enregistrement et la récupération des valeurs de propriété de chaque composant.

Par exemple, vous pouvez utiliser l'instance de composant comme Key d'une DictionaryEntry et la valeur de la propriété comme Value de DictionaryEntry. Lorsque la méthode GetNomPropriété est appelée, votre implémentation interroge alors la collection à propos de la valeur de propriété correspondant au composant donné.

Implémentation de l'interface IExtenderProvider

Chaque classe extendeur doit implémenter l'interface IExtenderProvider. Cette interface se compose d'une unique méthode, CanExtend, qui retourne une valeur booléenne et indique au concepteur si un composant est candidat à une extension ou non.

Alors qu'un fournisseur d'extendeurs peut procurer des propriétés à n'importe quel composant, l'implémentation comprend généralement des fonctionnalités qui permettent une utilisation avec une catégorie spécifique de composants uniquement. Par exemple, vous pouvez créer un extendeur qui ne fournit une propriété qu'aux seuls contrôles. Votre implémentation de la méthode CanExtend peut appliquer cette contrainte.

Voir aussi

Tâches

Comment : implémenter un fournisseur d'extendeurs

Comment : implémenter un fournisseur d'extendeurs HelpLabel

Autres ressources

Extension de la prise en charge au moment du design