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

VB.NET Discussion :

Contrôle utilisateur : l'événement Click [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 61
    Par défaut Contrôle utilisateur : l'événement Click
    Bonjour ,

    J'ai créé un contrôle utilisateur personnalisé et voila :

    en bref le dominant dans mon contrôle c'est une PictureBox ... en général tout marche bien Sauf le gros problème que j'ai : lorsque j'utilise mon contrôle sur une form l'événement clic ne marche pas !
    si je clique sur la partie dominante de mon contrôle (la pictureBox) rien ne marche, le clic ne se déclenche pas ,mais lorsque je clique en dehors de la pictureBox (sur le sol de l'user-control) l’événement se déclenche ...

    comment faire pour que mon contrôle prenne le clic sur la PictureBox comme étant le clic sur le contrôle ?

    merci d'avance

  2. #2
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Le click marche, sauf que ce n'est pas le bon, si dans ta classe d'userControl tu mets une messagebox("hello world") pour picturebox.Click tu verras que tu auras ta messagebox.

    Il faudrait que transmettes l'event .Click de ta picturebox vers ton control parent (qui est un panel ?).

    Exemple pour transmettre l'event :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click 'Dans mon cas c'est Form1 mais toi ce sera ton control parent de ton user control
            MsgBox("hello world")
        End Sub
     
        Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
            Me.Form1_Click(sender, e)
        End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 61
    Par défaut
    merci Ez3kiel pour votre réponse

    j'ai essayé votre code ca marche mais uniquement si l'instruction est dedans mais pas si l'instruction est sur la form de test

    j'explique : mon controle est comme une sorte de bouton ; lorsque je pose mon controle sur une form de test je fais appel à des instructions dans la form pas dans le controle

    dans votre exemple si je met le (MsgBox("hello world")) dans le code du controle ca marche mais si je met le (MsgBox("hello world")) dans le code de la form du test alors le click ne marche toujours pas ;; il marche si je click sur le panel (du controle) mais pas sur la picturebox

  4. #4
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    bonjour;

    tu peux mettre ton picturebox en public dans ton usercontrol
    dans la classe usercontrol.desinger.cs .

    dans ton form tu peux t abonner au click aussi dans ta classe form1.designer.cs

    en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     usercontrol1.PictureBox1.MouseClick+=new MouseEventHandler(
     
    picOneFaceUpA.MouseClick += new MouseEventHandler(PictureBox1_Click)
     
      void PictureBox1_Click(object sender, EventArgs e)
    .....

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par azstar Voir le message
    bonjour;
    dans ton form tu peux t abonner au click aussi dans ta classe form1.designer.cs
    Tu es sûr qu'il va trouver exactement ce fichier-là dans son projet ?

  6. #6
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Je ne peux pas savoir les noms qu il donne à ces variables !!!!!!!
    Chaque form à sa classe designer .

  7. #7
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Citation Envoyé par identifia Voir le message
    merci Ez3kiel pour votre réponse

    j'ai essayé votre code ca marche mais uniquement si l'instruction est dedans mais pas si l'instruction est sur la form de test

    j'explique : mon controle est comme une sorte de bouton ; lorsque je pose mon controle sur une form de test je fais appel à des instructions dans la form pas dans le controle

    dans votre exemple si je met le (MsgBox("hello world")) dans le code du controle ca marche mais si je met le (MsgBox("hello world")) dans le code de la form du test alors le click ne marche toujours pas ;; il marche si je click sur le panel (du controle) mais pas sur la picturebox
    Le code doit se trouver dans le code de l'usercontrol, dans mon exemple c'est sur Form1, mais comme précisé en commentaire : "'Dans mon cas c'est Form1 mais toi ce sera ton control parent de ton user control"

    Ainsi lorsque tu utiliseras ton usercontrol sur une Form et que tu cliques sur la picturebox, il le transmettra à son parent (qui sera le reste de ton usercontrol).

    Ps: Si le parent de ton usercontrol est un bouton tu as accès à .PerformClick() pour également lancer l'event Click du parent.

    Pss: Le cas échéant peut-on voir le code de ton userControl ?

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

Discussions similaires

  1. [Débutant] Contrôle NumericUpDown et événements utilisateurs
    Par BasicZX81 dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/01/2014, 12h43
  2. (Contrôle utilisateur) Gestion des click
    Par CIFQ_Drew dans le forum C#
    Réponses: 2
    Dernier message: 07/10/2010, 15h22
  3. gérer l'évènement Click du contrôle Image
    Par naruto01 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/01/2007, 18h43
  4. événement Click sur Check et option button ??
    Par badsepuku dans le forum IHM
    Réponses: 3
    Dernier message: 09/02/2006, 12h51

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