IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

UserControl : event on click button


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 71
    Points
    71
    Par défaut UserControl : event on click button
    Bonjour tout le monde

    Bon je viens de me mettre au c# pour mon mémoire de fin d'étude..

    Pour le moment ce que j'essaie de faire c'est de créer un userControl. Il serait composé d'un listBox, un label, et 2 boutons (OK-Cancel).

    Le but serait d'utiliser plusieurs fois ce userControl et lors du clique sur le bouton OK celui-ci doit souvent avoir une action différente suivant l'utilisation qu'on a du userControl.

    j'ai trouvé un tuto sur le site, qui parle un peu des userControls et qui explique comment utiliser ce genre de cas. Mais j'ai beau savoir lire et faire ce qu'on dit ca fonctionne pas :s

    Donc en suivant le tuto, j'ai créé dans le code du userControl 2 délégués
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public delegate void ValidButtonClickHandler(object sender, EventArgs e);
    public delegate void CancelButtonClickHandler(object sender, EventArgs e);
    ensuite j'ai créé les events pour mes boutons, avec un affichage dans la barre de propriéter pour dire ce qu'on veut que le bouton fasse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [Category("Configuration"), Browsable(true), Description("Evènement associé au bouton de validation")]
    public event ValidButtonClickHandler BoutonValidClick;
    [Category("Configuration"), Browsable(true), Description("Evènement associé au bouton d'annulation")]
    public event CancelButtonClickHandler BoutonCancelClick;
    Ensuite j'ai ajouté en dessous les méthodes qui font appel aux events.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    protected virtual void OnValidButtonClick(EventArgs e){
    	if (BoutonValidClick != null)	{
    		BoutonValidClick(this, e);
    	}
    }
    protected virtual void OnCancelButtonClick(EventArgs e)	{
    	if (BoutonCancelClick != null)	{
    		BoutonCancelClick(this, e);
    	}
    }
    private void btValidate_Click(object sender, System.EventArgs e){
    	OnValidButtonClick(e);
    }
    private void btCancel_Click(object sender, System.EventArgs e){
    	OnCancelButtonClick(e);
    }
    Donc voilà mais ca fonctionne pas, il est clair qu'il y a quelque chose que j'ai pas compris mais quoi??

    Quelqu'un sait-il m'aider siouplait?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    simple, la winform dans laquelle se trouve ton composant , doit faire un truc du genre :


    UserControl.SurTonEvent+=TaFonction;
    ou bien
    UserControl.MonDelegate = new Delegate(TaFonctiondeTaWinForm);

    Comprends bien une chose, soit tu fais le delegate et tu n'as pas besoin de l'event soit tu utilises l'event et tu n'as pas besoin du delegate

    Pour etre encore plus clair, le but du delegate est que sur le ButtonClick de ton userControl, tu appelles une méthode pointé par un delegate.. donc, pour ton usercontrol, peut importe de savoir à qui appartient le delegate, du moment qu'il correspond aux prototypes définis...

    Si tu choisis l'event, ca revient à ce que ton evenement Event soit publique..

    Donc, tu pourrais aussi mettre ton bouton dans ton userControl comme publique et t'aurais n'y besoin du delegate ni de l'event supplémentaire

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 71
    Points
    71
    Par défaut
    hihi merci pour le coup de pouce ca fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. click button dans web usercontrol ne foncionne pas?
    Par rikidi dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/06/2008, 17h05
  2. Event sur Tspeed button
    Par cfdev dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/01/2008, 12h05
  3. [WPF - Blend] Binding lié à un click button
    Par OS_trimble dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 06/12/2007, 14h28
  4. Click button : Mon code marche mais l'affichage ne suis pas !
    Par 19cmos83 dans le forum Interfaces Graphiques en Java
    Réponses: 12
    Dernier message: 03/10/2007, 13h33
  5. [debutant] click button
    Par jerome86600 dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 13/07/2006, 15h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo