Reconnaissant l'expéditeur bouton de contrôle dans l'événement click

J'ai fait un bouton personnalisé qui a un champ nommé Data.

- Je ajouter ce bouton par programmation au cours de l'exécution de mon winform et sur l'ajout j'ai également définir un événement click pour eux. Eh bien, en Fait je n'ai qu'une seule méthode et je m'abonne boutons nouvellement ajoutés à cette méthode.

Mais dans l'événement click je veux accéder à ce Data champ et de la montrer comme une boîte de message, mais il semble que mon choix n'est pas droit:

    CustomButton_Click(object sender, EventArgs e)
    {
        Button button;
        if (sender is Button)
        {
            button = sender as Button;
        } 

        //How to access "Data" field in the sender button? 
        //button.Data  is not compiling!
    }

Mise à JOUR:

Je suis désolé, je ment avec "n'est pas la compilation" que .Data ne s'affiche pas dans intelisense...

Vous n'avez pas à vérifier si sender est un Button, depuis le as mot clé permet de s'assurer que votre variable est null si il ne peut pas lancer votre variable de la classe correcte.
Ce n'est pas valable de code C# alors bien sûr, cela ne fonctionnera pas. En général, un bouton personnalisé de contrôle doit l'emporter sur le OnClick méthode de sorte qu'il peut mettre en œuvre son propre comportement de l'événement click.
Comment avez-vous essayez d'accéder au champ "Data"?
Il juste n'a pas le montrer dans intelisense...maintenant que je l'ai jeté à CustomButton il n'.
J'ai eu l'idée, merci pour ça!

OriginalL'auteur Saeid Yazdani | 2012-07-08