Share via


Genişletici Sağlayıcı Nesneleri

Bir uzatma sağlayıcısı , diğer bileşenler için özellikler sağlayan bir bileşenidir.Örneğin, bir ToolTip bileşen olarak adlandırılan bir özellik sağlar, forma eklenir ToolTip , formdaki her denetime.ToolTip Özelliği sonra görünen özelliklerini her pencereyi denetlemek ve geliştirici tasarım anında bu özellik için bir değer ayarlamak izin verir.

Uzatma sağlayıcısı tarafından sağlanan özelliği extender sağlayıcı nesnesinde kendisi gerçekte bulunduğu ve bu nedenle onu değiştirir bileşenin doğru bir özellik değildir.Özellik görünür tasarım zamanında özelliklerini değiştirilmekte olan bileşen için pencere.Çalışma zamanında bileşeni özelliği ancak erişilemiyor.Aşağıdaki kod örneği, bir form olarak adlandırılan bir düğme ile oluşturuldu MyButton ve bir ToolTip olarak adlandırılan bir denetim MyToolTip, sağlayan bir ToolTip özelliği.

' 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;

Derleyici tanımadığı için bu sözdizimini bir derleme hatası üretecektir ToolTip bir özelliği olarak MyButtonözelliği tarafından gerçekten sağlandığından, MyToolTip.Aşağıdaki örnek, doğru bu özelliğe erişmek gösterilmiştir:

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

Uzatma sağlayıcısı bir sýnýftýr ve kendi özellikleri ve yöntemleri gibi olabilir.Diğer bileşenler sağlanacak özellikle bir özelliği belirlemek için uygulamanız ProvidePropertyAttribute özniteliği sınıf düzeyinde.Bu öznitelik sağlamak için özellik adını belirtir ve nesne türü bu özellik için sağlayabilir.Kural gereği, bir özellik, ancak yerine yöntemleri çifti olarak sağlanan özellik uygulanmadı.Bu yöntemler, "Get" ve "Set" özelliğinin adı başlangıcına eklenir sağlanacak olması gerekir.Aşağıdaki örnekte gösterildiği nasıl.

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.
   }
}

Sağlanan özellik uygulanmasındaki gerektirecek bir Hashtable ya da kaydedebilir ve her denetim için özellik değerlerini almak için bazı diğer tür koleksiyon nesnesi.Ayrıntılar için bkz. Nasıl yapılır: Genişletme Sağlayıcısını Uygulama.

Her extender sınıfı da uygulamalısınız IExtenderProvider arabirimi.Tek bir yöntemi, bu arabirimi oluşur CanExtend, bir Boole değeri döndürür ve tasarımcı için bir bileşen veya genişletilmesi için aday olup olmadığını gösterir.Örneğin, yalnızca bir özellik sağlayan extender oluşturmak isteyebilirsiniz.Aşağıdaki örnek, nasıl uygulanacağını gösterir CanExtend yöntemi:

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;
}

Ayrıca bkz.

Görevler

Nasıl yapılır: Genişletme Sağlayıcısını Uygulama

Nasıl yapılır: HelpLabel Genişletme Sağlayıcısını Uygulama

Başvuru

IExtenderProvider

ProvidePropertyAttribute

Diğer Kaynaklar

Genişletici Sağlayıcıları