2010-01-13 5 views
2

Je souhaite ajouter une propriété personnalisée à un bouton sous forme de fenêtre. Actuellement j'utilise le code suivant pour créer ma logique. mais je veux créer une valeur enum pour un contrôle de bouton.Comment ajouter une propriété personnalisée et des événements à un contrôle, par exemple une zone de texte ou un bouton

btnPartyDetails.Text = "View"; 
{} 
btnPartyDetails.Text = "Add"; 
{}  
btnPartyDetails.Text = "Delete"; 
{} 
btnPartyDetails.Text = "Edit"; 
{} 

Je veux effectuer une action basée sur ces valeurs et je veux faire une propriété personnalisée pour le bouton afin que je puisse utiliser ENUM au lieu d'utiliser match de texte.

btnPartyDetails.ActionType= ActionType.View; 
{} 
btnPartyDetails.ActionType= ActionType.Add; 
{}  
btnPartyDetails.ActionType= ActionType.Delete; 
{} 
btnPartyDetails.ActionType= ActionType.Edit; 
{} 

Je veux faire quelque chose comme cela, où ActionType sera mon enum. Je souhaite également créer un événement personnalisé en fonction de l'ensemble de valeurs. Comment puis-je faire ceci ?

Répondre

5

Vous devrez créer un contrôle personnalisé et hériter de la classe de bouton. Créez ensuite vos propriétés personnalisées et/ou vos événements.

Vérifiez this ou this à partir de MSDN

0

Vous devez obtenir une nouvelle classe de bouton

3

Vous pouvez hériter de la commande que vous voulez et l'étendre comme vous le souhaitez. AFAIK aucun des contrôles sont des classes scellées dans Winform. Vous pouvez donc ajouter des propriétés et des événements supplémentaires. Quelque chose comme:

public class MyTextBox : System.Windows.Forms.TextBox { 

public string MetaMessage {get;set;} 

public event SomeCoolEventHandler CoolEvent; 
public delegate SomeCoolEventHandler(object sender, CoolEventArgs args); 
} 

public class CoolEventArgs: EventArgs{ 

.... 
} 
Questions connexes