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

C# Discussion :

Appel d'un événement interne d'un controle inclut dans un controle ? [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 78
    Points
    78
    Par défaut Appel d'un événement interne d'un controle inclut dans un controle ?
    Bonjour,

    Ma question est assez théorique car je n'ai pas assez de bagage en csharp pour y répondre, j'espère que vous pourrez m'aider.

    J'ai un controle dans lequel il y a un controle interne avec des événements. Ma question est de savoir comment je peux déclancher un événement de mon controle interne tout en sachant que je ne le visualise pas directement (dans la liste des événements) en sélectionnant mon controle ?

    Si ma question n'est pas assez précise je pourrais vous l'illustrer avec un controle (en fait tout un ensemble, mais je ma question porte sur l'un d'entre eux) qui me pose ce genre de problème.

    Pour information, la dernière réponse du support où on en a fait l'acquisition est en gros du genre << tu as tout ce qu'il te faut, cherche un peu >>. Ce qu'ils ne savent pas, c'est que je suis seul développeur csharp et autodidacte, c'est-à-dire certainement avec beaucoup de manque de connaissance sur csharp. Je ne dis pas cela pour vous faire pleurer sur moi, mais pour vous expliquer pourquoi je pose ce genre de question, qui pour certains semblera basique.

    Merci par avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Citation Envoyé par Potus Voir le message
    Ma question est de savoir comment je peux déclancher un événement de mon controle interne
    Euh, normalement tu fais pas ça... c'est le contrôle lui-même qui est supposé déclencher l'évènement. Si ce contrôle ne sait pas quand déclencher l'évènement, il y a probablement un problème de conception.

    Essaie de décrire plus précisément ce que tu cherches à faire, parce que là c'est un peu vague...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Essaie de décrire plus précisément ce que tu cherches à faire, parce que là c'est un peu vague...
    Ok, je développe : J'ai un controle ComboTree qui contient un controle AdvTree; Autrement dit, c'est une liste box avec des cases à cocher.



    Quand je sélectionne ma listeBox, je ne trouve pas les évènements du contrôle AdvTree (cad des case à cocher dans la liste). L'assistance m'a confirmé que c'est bien cet événement que je dois appeler.

    Ce que je veux faire c'est appeler l'évènement AdvTree.AfterCheck lorsque je coche ou décoche sur la même ligne.

    En fait je sais ce que je dois appeler comme événement, mais je ne sais pas comment on le déclenche. Et comme tu me dis que cela dois se faire automatiquement ça me laisse encore plus perplexe !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Toujours pas tout compris...

    Citation Envoyé par Potus Voir le message
    Ce que je veux faire c'est appeler l'évènement AdvTree.AfterCheck lorsque je coche ou décoche sur la même ligne.
    On n'appelle pas un évènement, c'est lui qui t'appelle. C'est tout le principe des évènements...

    Citation Envoyé par Potus Voir le message
    Et comme tu me dis que cela dois se faire automatiquement ça me laisse encore plus perplexe !
    Bah c'est le AdvTree qui déclenche un évènement AfterCheck quand tu coches une CheckBox. C'est pas à toi de lui dire de déclencher l'évènement, sinon ça sert à rien ; le but d'un évènement c'est d'être notifié quand quelque chose se produit, et par définition tu ne sais pas à l'avance quand ça va se produire...

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Points : 359
    Points
    359
    Par défaut
    Es ce que ta demande ne serai pas tout simplement :
    Comment faire pour exploiter l'évènement ?
    En gros un évènement se déclenche (c'est en dehors de ton champs d'utilisation du control) et toi tu veux exploiter cette évènement en attachant une FONCTION au déclenchement de cette évènement (qui "après avoir cocher la case").

    Pour cela tu dois attacher une fonction à ton évènement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tonCheckBox.AfterChecked += new EventClick(MaFonctionTraitement);
    Ne fait pas de copier/coller c'est un exemple je ne suis pas sur des noms

    Es ce que c'est ça ta demande ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 78
    Points
    78
    Par défaut
    Voilà la dernière phrase de l'assistance :
    Citation Envoyé par Assistance du composant
    AdvTree is property. Please review properties and object types. Everything is there, you just need to pay attention.
    Quand j'accède à l'explorateur d'objets, je peux trouver dans le composant ComboTree effectivement la propriété AdvTree (mais pas directement ses événements) :



    Quand je le sélectionne, voilà ce que l'on trouve sur la propriété AdvTree :



    Si j'accède au controle AdvTree, là je trouve bien l'événement qui m'interrese (AfterCheck) :



    Ce que je ne sais pas faire, c'est lier les deux; Autrement dit, localiser le controle interne du controle ComboTree (Celui que Morgand appele tonCheckBox) !

    Je pense que Morgand est effectivement pas loin de la vérité.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Points : 560
    Points
    560
    Par défaut
    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ComboTree combo = new ComboTree();
    combo.AdvTree.AfterCheck += new EventHandler(MonEvent);

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Points : 359
    Points
    359
    Par défaut
    Oui je pense que je n'étais pas très loin de la vérité, tu fais un amalgame entre créer un évènement et se câbler sur un évènement.
    Si tu fais du C++ on pourrait dire (attention ce n'est qu'un exemple !!!!!!) que c'est comme de s'accrocher à un SIGNAL et pas créer le SIGNAL.
    Bien sur ce n'est qu'une illustration, car je ne connais pas trop le système de SIGNAL en C++. Je l'ai utilisé vite fait dans mes études avec du QT.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Ah, je crois que je commence enfin à comprendre ce qui te posait problème... AdvTree étant une propriété de ComboTree, ses évènements n'apparaissent sans doute pas dans le designer. Il faut donc s'y abonner par le code, comme indiqué par Aeronia.

    Soit dit en passant, l'API de ce composant a l'air un peu pourrie... et l'assistance qui te dit "Everything is there, you just need to pay attention", je trouve ça assez gonflé

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Points : 560
    Points
    560
    Par défaut
    J'avoue ça n'a pas l'air très sérieux leur support

    Ca me rappelle une demande de support chez un fabriquant de firewall dont je tairais le nom
    Faites ce tutoriel, ça DOIT marcher,si ça ne fonctionne pas, refaites le tutoriel

  11. #11
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    Bonjour, je ne connais pas la société en question, mais pour relativiser un peu la chose, le but d'un support est de donner des informations sur les particularités de leur outil, pas de former les gens en C#. L'abonnement à un évènement n'est pas une spécificité de l'outil.
    Après, ils pourraient te le dire plus gentiment, je te l'accorde.

    Heureusement, il y a ce genre de forum et de bons bouquins pour aider les gens comme tomlev Potus ou moi.

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Points : 560
    Points
    560
    Par défaut
    Oui je suis d'accord avec toi sur ce point mais ça dépend du type de support on va dire.
    Un support n'est pas l'autre, il faut se renseigner auparavant.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 122
    Points : 78
    Points
    78
    Par défaut
    Un grand merci à vous tous, c'était bien ça le problème.

    Je vais finir la fin de l'année avec un peu plus de bagages sur csharp !

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

Discussions similaires

  1. Probleme recupération valeur dans un controle onglet dans requete SQL
    Par golfmatcam dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 08/10/2013, 21h50
  2. Réponses: 1
    Dernier message: 22/06/2012, 12h24
  3. Affecter a un controle inclut dans un datagrid un evennement
    Par Alabama-song dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/08/2007, 13h42
  4. Réponses: 3
    Dernier message: 07/07/2007, 10h35
  5. Appel de procédure événement
    Par James64 dans le forum Langage
    Réponses: 4
    Dernier message: 22/06/2005, 10h33

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