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 :

[C#] utilisation d'évênements [nouveau problème]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut [C#] utilisation d'évênements [nouveau problème]
    Bonjour à tous !!

    J'ai un soucis dans ma programmation car j'aurais besoin d'utiliser des évênements et je ne vois pas comment faire dans mon cas :

    J'ai une classe qui utilise un driver. Ce driver récupère des positions sur un capteur et à chaque fois qu'il en a une nouvelle il émet un évênement. Cet évênement est capté comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AngleDrv.EvAngleMeasure += new _IFIAngleDrvEvents_EvAngleMeasureEventHandler(AngleDrv_EvAngleMeasure);
    et le traitement de l'évênement se fait donc dans AngleDrv_EvAngleMeasure().

    le truc c'est que j'aimerais renvoyer un évênement à partir de ce moment la pour qu'il soit "attrapé" par d'autres classes mais je ne sais pas comment faire. J'ai entendu parler des délégates mais j'ai vraiment du mal à comprendre donc je voudrais savoir si il n'y a pas un moyen plus simple d'arriver à mes fins... Un genre de autoResetEvent mais qui pourrait être vu par d'autres classes

    J'espère avoir été assez clair
    merci d'avance
    Gillou

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Salut .

    tu n'as pas d'autre solution que d'utiliser les evènements.

    Je te conseil la lecture de cet article pour comprendre comment fonctionne les évènements.

    tu verras en définif, c'est très simple.

  3. #3
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut
    merci pour ta réponse
    alors en fait comme j'avais déjà fait des recherches sur les delegates j'étais déjà tombé sur ce tuto. J'avais trouvé ca un peu compliqué mais bon c'est comme toutes les notions nouvelles, au début faut lutter
    En fait si j'ai bien compris les paramètres "object sender, GenerateTextEventArgs e" ne sont pas indispensable au fonctionnement mais c'est comme ca que tout le monde fait, c'est bien ca?

    Sinon j'ai toujours un peu de mal a comprendre ce qu'est un delegate et ca fonction réelle mais bon je vais suivre le tuto et l'utiliser comme ca... Si vous avez une définition un peu plus précise du délégate je suis preneur. J'aime pas avoir des zones d'ombre comme ca

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Salut .

    effectivement les parametres de l'évèment sont facultatifs vu que c'est toi qui choisi quels parametres doivent etre mis. Mais la "doctrine" .NET recommande d'utiliser la structure qui est donné dans le tuto.

    Sinon un délégué est un pointeur de fonction fortement typé. Si tu viens du monde C/C++ alors c'est clair ... sinon ben je connais pas l'équivalent du VB ...

  5. #5
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut
    MDR je ne viens ni du C, ni du C++, ni du VB
    je viens du java qui est relativement proche mais c'est je ne suis pas un expert non plus... en tout cas je suis bien content que mon stage soit sur le C# c'est vraiment génial comme langage !! Donc je vais me concentrer la dessus, j'ai déjà les bases et les autres notions vont venir en fonction du besoin

    merci encore pour ton aide, ca marche comme ca

  6. #6
    Membre confirmé Avatar de legillou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 178
    Par défaut
    je reposte un message parce que j'ai un nouveau problème lié au précédent.

    J'ai réussi à utiliser les évênements avec un delegate.
    A partir de la classe "classe1" j'envoie cet évênement.
    La classe "classe2" le récupère et lance la methode "_classe2_onStopReceive"

    Mon problème c'est que j'ai une erreur quand dans _classe2_onStopReceive, j'essaye de mettre à jour des textBox de classe2 ou de lancer une autre methode de classe2...

    J'ai une erreur comme cela :
    System.InvalidOperationException: Cross-thread operation not valid: Control 'connectionLog' accessed from a thread other than the thread it was created on.

    J'espère que ca vous parlera plus qu'a moi... En fait je comprend bien ce que ca dit mais je ne sais pas comment contourner le problème

    merci d'avance

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

Discussions similaires

  1. [AC-2010] Problème d'utilisation d'un nouveau onglet
    Par aymen2013 dans le forum IHM
    Réponses: 1
    Dernier message: 20/02/2013, 05h49
  2. nouveau problème avec le separator
    Par boudou dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/02/2006, 14h25
  3. [MFC]Utilisation d'un SLIDER , problème de conversion
    Par sylvain_c42 dans le forum MFC
    Réponses: 1
    Dernier message: 10/05/2005, 14h31
  4. Nouveau problème de récupération de valeurs.
    Par pmboutteau dans le forum ASP
    Réponses: 4
    Dernier message: 09/03/2005, 10h48
  5. [COM] Comment utiliser les événements Word ?
    Par Laurent Dardenne dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 30/05/2004, 12h38

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