Aracılığıyla paylaş


Windows Forms Denetimlerinde Özellik Tanımlama

Özelliklere genel bakış için bkz . Özelliklere Genel Bakış. Bir özelliği tanımlarken dikkat edilmesi gereken birkaç önemli nokta vardır:

  • Tanımladığınız özelliklere öznitelikler uygulamanız gerekir. Öznitelikler, tasarımcının bir özelliği nasıl görüntülemesi gerektiğini belirtir. Ayrıntılar için bkz . Bileşenler için Tasarım Zamanı Öznitelikleri.

  • Özelliğin değiştirilmesi denetimin görsel görünümünü etkiliyorsa, erişimciden yöntemini (denetiminizin devraldığıControl) çağırın.Invalidateset Invalidate buna karşılık, denetimi yeniden çizen yöntemini çağırır OnPaint . Verimlilik için Invalidate tek bir çağrıya neden olan OnPaint birden çok çağrı.

  • .NET Framework sınıf kitaplığı, tamsayılar, ondalık sayılar, Boole değerleri ve diğerleri gibi yaygın veri türleri için tür dönüştürücüleri sağlar. Tür dönüştürücüsünün amacı genellikle dizeden değere dönüştürme sağlamaktır (dize verilerinden diğer veri türlerine). Yaygın veri türleri, değerleri dizelere ve dizelere uygun veri türlerine dönüştüren varsayılan tür dönüştürücüleriyle ilişkilendirilir. Özel (yani standart olmayan) bir veri türü olan bir özellik tanımlarsanız, bu özellikle ilişkilendirilecek tür dönüştürücüsünü belirten bir öznitelik uygulamanız gerekir. Özel kullanıcı arabirimi türü düzenleyicisini bir özellik ile ilişkilendirmek için bir öznitelik de kullanabilirsiniz. Kullanıcı arabirimi türü düzenleyicisi, bir özelliği veya veri türünü düzenlemek için bir kullanıcı arabirimi sağlar. Renk seçici, kullanıcı arabirimi türü düzenleyicisi örneğidir. Öznitelik örnekleri bu konunun sonunda verilmiştir.

    Dekont

    Özel özelliğiniz için bir tür dönüştürücüsü veya kullanıcı arabirimi türü düzenleyicisi kullanılamıyorsa, Tasarım Zamanı Desteğini Genişletme bölümünde açıklandığı gibi bir tür uygulayabilirsiniz.

Aşağıdaki kod parçası, özel denetimi FlashTrackBariçin adlı EndColor bir özel özellik tanımlar.

Public Class FlashTrackBar  
   Inherits Control  
   ...  
   ' Private data member that backs the EndColor property.  
   Private _endColor As Color = Color.LimeGreen  
  
   ' The Category attribute tells the designer to display  
   ' it in the Flash grouping.
   ' The Description attribute provides a description of  
   ' the property.
   <Category("Flash"), _  
   Description("The ending color of the bar.")>  _  
   Public Property EndColor() As Color  
      ' The public property EndColor accesses _endColor.  
      Get  
         Return _endColor  
      End Get  
      Set  
         _endColor = value  
         If Not (baseBackground Is Nothing) And showGradient Then  
            baseBackground.Dispose()  
            baseBackground = Nothing  
         End If  
         ' The Invalidate method calls the OnPaint method, which redraws
         ' the control.  
         Invalidate()  
      End Set  
   End Property  
   ...  
End Class  
public class FlashTrackBar : Control {  
   ...  
   // Private data member that backs the EndColor property.  
   private Color endColor = Color.LimeGreen;  
   // The Category attribute tells the designer to display  
   // it in the Flash grouping.
   // The Description attribute provides a description of  
   // the property.
   [  
   Category("Flash"),  
   Description("The ending color of the bar.")  
   ]  
   // The public property EndColor accesses endColor.  
   public Color EndColor {  
      get {  
         return endColor;  
      }  
      set {  
         endColor = value;  
         if (baseBackground != null && showGradient) {  
            baseBackground.Dispose();  
            baseBackground = null;  
         }  
         // The Invalidate method calls the OnPaint method, which redraws
         // the control.  
         Invalidate();  
      }  
   }  
   ...  
}  

Aşağıdaki kod parçası, bir tür dönüştürücüsü ve kullanıcı arabirimi türü düzenleyicisini özelliğiyle Valueilişkilendirir. Bu durumda Value bir tamsayıdır ve varsayılan tür dönüştürücüsü vardır, ancak özniteliği tasarımcının TypeConverterAttribute bunu yüzde olarak görüntülemesini sağlayan bir özel tür dönüştürücüsü (FlashTrackBarValueConverter) uygular. KULLANıCı arabirimi türü düzenleyicisi, FlashTrackBarValueEditoryüzdenin görsel olarak görüntülenmesine izin verir. Bu örnekte, veya EditorAttribute özniteliği tarafından belirtilen tür dönüştürücüsunun veya düzenleyicinin TypeConverterAttribute varsayılan dönüştürücüsü geçersiz kıldığını da gösterir.

<Category("Flash"), _  
TypeConverter(GetType(FlashTrackBarValueConverter)), _  
Editor(GetType(FlashTrackBarValueEditor), _  
GetType(UITypeEditor)), _  
Description("The current value of the track bar.  You can enter an actual value or a percentage.")>  _  
Public ReadOnly Property Value() As Integer  
...  
End Property  
[  
Category("Flash"),
TypeConverter(typeof(FlashTrackBarValueConverter)),  
Editor(typeof(FlashTrackBarValueEditor), typeof(UITypeEditor)),  
Description("The current value of the track bar.  You can enter an actual value or a percentage.")  
]  
public int Value {  
...  
}  

Ayrıca bkz.