Sdílet prostřednictvím


Objekty zprostředkovatele rozšíření

Rozšiřující zprostředkovatel je součást, která obsahuje vlastnosti a další součásti.Například, když ToolTip přidání komponenty do formuláře, obsahuje vlastnost s názvem ToolTip pro každý ovládací prvek ve formuláři.ToolTip Vlastností se objeví v Vlastnosti okna pro každý řídit a umožňuje vývojáři nastavit hodnotu této vlastnosti v době návrhu.

Vlastnost od zprostředkovatele zařízení extender skutečně nachází v zařízení extender zprostředkovatel sám a proto není true vlastnost komponenty, které upraví.V době návrhu vlastnosti se zobrazí v Vlastnosti okno pro komponentu, která je právě upravován.V době spuštění však vlastnost nelze přistupovat prostřednictvím samotná komponenta.V následujícím příkladu kódu formuláře byla vytvořena pomocí tlačítka nazývá MyButton a ToolTip ovládacího prvku s názvem MyToolTip, která poskytuje ToolTip vlastnost.

' This is an example of code that is NOT CORRECT!
Dim myString as String
myString = MyButton.ToolTip
// This is an example of code that is NOT CORRECT!
string myString;
myString = MyButton.ToolTip;

Tato syntaxe bude generovat chybu kompilace, protože kompilátor nerozpozná ToolTip jako vlastnost MyButton, protože vlastnost skutečně poskytnutých MyToolTip.Následující příklad ukazuje, jak správně přístup k vlastnosti:

Dim myString as String
myString = MyToolTip.GetToolTip(MyButton)
string myString;
myString = MyToolTip.GetToolTip(MyButton);

Rozšiřující zprostředkovatel je třída a jako takové mohou mít své vlastní vlastnosti a metody.Nastavit vlastnost jako vlastnost poskytované další součásti, použije ProvidePropertyAttribute atribut na úrovni třídy.Tento atribut určuje název vlastnosti poskytnout a typ objektu, který může poskytnout tuto vlastnost.Vlastnost poskytované úmluvou, není implementována jako vlastnost, ale spíše jako dvojice metody.Tyto metody musí mít "Get" a "Set" přidána na začátek názvu vlastnosti mají být poskytnuty.Následující příklad ukazuje jak.

Imports System.ComponentModel
<ProvideProperty("MyText", GetType(Control))> Public Class MyExtender
   <ExtenderProvidedProperty()> Public Function GetMyText(acontrol as _
      Control) as String
      ' Insert code to implement function.
   End Function
   Public Sub SetMytext (acontrol as Control)
      ' Insert code to implement function.
   End Function
End Class
using System.ComponentModel;
[ProvideProperty("MyText", typeof("Control"))]
public class MyExtender
{
[ExtenderProvidedProperty()]
   public string GetMyText(Control acontrol)
   {
      // Insert code to implement method.
   }
   public void SetMyText(Control acontrol)
   {
      // Insert code to implement method.
   }
}

Bude vyžadovat provádění uvedených vlastností Hashtable nebo jiné takové kolekce objektu k záznamu a hodnot vlastností pro každý ovládací prvek.Další informace naleznete v tématu Postupy: Implementace poskytovatele rozšíření.

Každá třída extender musí implementovat IExtenderProvider rozhraní.Toto rozhraní obsahuje jedinou metodu, CanExtend, která vrátí logickou hodnotu a Návrhář označuje, zda je součást kandidáta prodloužena, nebo není.Můžete například vytvořit zařízení extender, která poskytuje vlastnosti pouze pro ovládací prvky.Následující příklad ukazuje, jak implementovat CanExtend metoda:

Imports System.ComponentModel
Public Function CanExtend(ByVal extendee As Object) As Boolean _
   Implements IExtenderProvider.CanExtend
   If Typeof extendee Is Control Then
      Return True
   Else
      Return False
   End If
End Function
public bool CanExtend(object extendee) 
{
   if (extendee is Control)
      return true;
   else
      return false;
}

Viz také

Úkoly

Postupy: Implementace poskytovatele rozšíření

Postupy: Implementace poskytovatele rozšíření HelpLabel

Referenční dokumentace

IExtenderProvider

ProvidePropertyAttribute

Další zdroje

Zprostředkovatelé rozšíření