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 :

[VB.NET]Génération d'événement


Sujet :

VB.NET

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Par défaut [VB.NET]Génération d'événement
    Je n'ai rien trouvé (mais j'ai peut être mal cherché) pouvant répondre alors je pose ma question.
    Existe-t-il une solution pour programmer un envoi tel que "Bouton1 on vient de te cliquer dessus" ?

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 458
    Par défaut
    salut,
    une manière simple pour ça est d'appeler une fonction lors du clic sur le bouton1 ou lorsque tu veux faire le même traitement que si tu cliquais dessus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    sub maFonction
    -- code pour gérer le clic sur le bouton
    ...........
    end sub
     
        Private Sub Bouton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bouton1.Click
    maFonction()
    End sub
    Et t'appelles maFonction qd tu veux simuler le clic sur le bouton

  3. #3
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Par défaut
    RaiseEvent ne permet de lever que des événements de la classe courante, dans mon cas le formulaire donc avec RaiseEvent je ne peux lever que des Load, Closed, GotFocus, etc du formulaire. RaiseEvent ne permet pas de lever un événement sur un objet membre de la classe.

    La fonction contenant le code du clic c'est bien, mais le problème c'est que Bouton1 est un contrôle personnalisé externe au formulaire contenant déjà son propre handler sur le click.
    Donc à part modifier le contrôle (je préfère préciser que ce n'est pas moi qui l'ait fait) il n'y a pas d'autre solution envisageable ?

  5. #5
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Ben déjà va falloir que tu m'explique pourquoi déclencher un Click par code . Je ne connais pas la conception de ta solution mais tu avouras que là ya un souci non :
    S'il n'y a pas eu de Click Utilisateur encore une fois pourquoi passer par son déclenchement :

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Par défaut
    Citation Envoyé par neguib
    Ben déjà va falloir que tu m'explique pourquoi déclencher un Click par code . Je ne connais pas la conception de ta solution mais tu avouras que là ya un souci non :
    S'il n'y a pas eu de Click Utilisateur encore une fois pourquoi passer par son déclenchement :
    Un clic sur un contrôle change son état (qui dépend de son état précédent), avec tout un tas de traitement interne derrière, et lève un autre événement (indiquant le changement d'état) qui lui est intercepté par mon formulaire. Le changement d'état d'un contrôle produit un affichage dans le formulaire cumulable avec celui généré par les autres contrôles.
    Le but c'est d'exécuter l'affichage dans le formulaire mais les actions se font en flux poussé depuis le contrôle donc en éxécutant dans le formulaire directement je perd la synchronisation avec le contrôle.
    La raison de le faire par code c'est pour éxécuter des actions de masse, déclenchées par l'utilisateur. Pour ces actions de masse, le "choix" des contrôles à cliquer est assimilable à une requête sur les données contenues dans les contrôles, dont les critères sont dépendants de l'utilisateur. Il est aisé de connaître les contrôles affectés et de produire les affichages dans le formulaire mais il est actuellement impossible de déclencher la suite d'actions générée par un contrôle sans cliquer dessus.

  7. #7
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    salut
    je ne c pas si ça va marcher ou non, je n'ai jamais eu affaire à un problème pareil, mais si tu passes ton bouton en paramètre dans le constructeur de ta classe et que tu le mets comme attribut, si tu fais un raiseevent là dessus ça ne résoud pas le problème ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Par défaut
    Citation Envoyé par Mourad
    salut
    je ne c pas si ça va marcher ou non, je n'ai jamais eu affaire à un problème pareil, mais si tu passes ton bouton en paramètre dans le constructeur de ta classe et que tu le mets comme attribut, si tu fais un raiseevent là dessus ça ne résoud pas le problème ?
    -->
    Citation Envoyé par Franckintosh
    RaiseEvent ne permet pas de lever un événement sur un objet membre de la classe.

  9. #9
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    re
    je crois avoir trouvé la solution à ton problème
    ben tu fais comme je t'ai dis tt à l'heure:
    - tu déclares un bouton BTN comme attribut dans ta forme
    - tu passes le bouton en paramètre dans le constructeur de ta forme que tu affectes par la suite au BTN
    -lorsque tu veux lancer l'évenèment clique du bouton tu appelles la méthode :
    et le tour est joué

  10. #10
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Sinon connais-tu tout de même le code du composant ? notamment sur l'evenement click, je soupçonne que la méthode correspondante contienne tout le code nécessaire à la suite alors qu'il est preferable simplement de faire un appel de méthode qui serait rendu publique et donc atteignable egalement par programmation
    Une autre voie est que le concepteur ait pensé à faire une méthode OnClick protégée qui déclenche l'evenement OnClick en envoyant un EventArgs, dans ce cas utilises simplement qu'un dérivé de ce composant pour avoir accès au OnClick

  11. #11
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Par défaut
    Mon contrôle n'est pas un bouton au sens .Net (implémentation de IButtonControl ou dérivé de Button) donc je n'ai pas accès à PerformClick.

    J'ai accès au code, j'en ai même hérité la maintenance, mais modifier un composant stable et qui fonctionne correctement est la dernière option à envisager (surtout quant il est utilisé dans beaucoup d'endroits), même s'il a besoin d'une bonne refonte pour être aussi souple que ceux du framework (le concepteur il a pensé à rien du tout ).

    Grâce à vos suggestions (merci :-)) je suis aller fouiller dans des zones auxquelles je n'avais pas pensées, et y ai trouvé la méthode protégée InvokeOnClick dans System.Windows.Forms.Control qui permet d'émuler un clic sur un contrôle passé en argument, un Form étant un dérivé de Control ça va tout bien. Le truc plutôt vicieux c'est qu'elle n'apparaît pas dans l'aide à la saisie (de Visual Studio) pour les objets dérivés de Control.

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

Discussions similaires

  1. [VB.NET] Génération automatique Property (getter / setter)
    Par Husqvarna dans le forum Windows Forms
    Réponses: 7
    Dernier message: 23/07/2020, 11h55
  2. [.NET] Génération d'un document XML
    Par bart64 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 31/05/2005, 13h56
  3. [VB.NET] Déclenchement d'évènement d'un TextBox
    Par leSeb dans le forum Windows Forms
    Réponses: 11
    Dernier message: 08/10/2004, 11h40
  4. [VB.NET] Remontée d'évènements
    Par bifidus dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/09/2004, 14h25

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