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 :

Préséance d'un bouton sur les événements des autres contrôles d'un formulaire


Sujet :

VB.NET

  1. #1
    Candidat au Club Avatar de hexa69
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Canada

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

    Informations forums :
    Inscription : Novembre 2016
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Préséance d'un bouton sur les événements des autres contrôles d'un formulaire
    Bonjour,

    J'ai un formulaire avec un menu, des combobox et des boutons.
    Les combobox ont des procédures dans leur événement « validating ».
    J'ai un bouton « Quitter » sur ce formulaire, et je voudrais que l'événement « click » sur celui-ci soit prioritaire dans le traitement des événements par rapport aux événements « validating » des combobox quand un de ceux-ci a le focus.
    J'ai beau cherché, mais là je suis en manque d'inspiration.
    Quelqu'un aurait-il une piste de solution ?

    Merci.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    Je ne pense pas que ce soit possible. L'évènement Validating du combobox doit normalement se produire avant l'évènement Click du bouton.

    Par contre, peut-être une piste, vérifier quel control a le focus dans l'évènement Validating. En effet, cet évènement, dans le cas que tu présente, est déclenché par la perte de focus du combobox, lui-même déclenché par la prise de focus du bouton lors du clic. Donc, au moment du validating, peut-être que le bouton Quitter est déjà marqué comme ayant le focus, dans ce cas tu peux différencier ton traitement de ton validating.
    De mémoire, pour savoir qui a le focus, c'est la méthode ActiveControl, je crois.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour
    MSDN lib fr rubrique :Control.Validating, événement
    Si la propriété CausesValidation a la valeur false, les événements Validating et Validated sont supprimés.

    L'événement Validating se déclenche après LostFocus dans toutes les séquences de code sur le .NET Compact Framework, sauf lorsqu'il n'est pas possible de restaurer le focus ultérieurement, comme par exemple lors de la fermeture du formulaire.
    tu peux faire ceci ,mais tout dépendra la structure de ton appli et du contexte de ton code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    Public Class Form2
     
        Private Sub ComboBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.LostFocus
            'de -commentes ce code pour voir l'effet sur les events  Validating  & Validated
            'If Button1.Focused Then
     
            '    ComboBox1.CausesValidation = False
            'End If
     
        End Sub
     
     
        Private Sub ComboBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Validated
            Label2.Text = "message2"
        End Sub
     
     
     
        Private Sub ComboBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ComboBox1.Validating
     
            Label1.Text = "message1"
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            MessageBox.Show("hello")
        End Sub
     
     
    End Class
    bon code...

  4. #4
    Candidat au Club Avatar de hexa69
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Canada

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

    Informations forums :
    Inscription : Novembre 2016
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par MABROUKI Voir le message
    bonjour
    MSDN lib fr rubrique :Control.Validating, événement

    tu peux faire ceci ,mais tout dépendra la structure de ton appli et du contexte de ton code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    Public Class Form2
     
        Private Sub ComboBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.LostFocus
            'de -commentes ce code pour voir l'effet sur les events  Validating  & Validated
            'If Button1.Focused Then
     
            '    ComboBox1.CausesValidation = False
            'End If
     
        End Sub
     
     
        Private Sub ComboBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Validated
            Label2.Text = "message2"
        End Sub
     
     
     
        Private Sub ComboBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ComboBox1.Validating
     
            Label1.Text = "message1"
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            MessageBox.Show("hello")
        End Sub
     
     
    End Class
    bon code...
    **********************************************************

    Merci MABROUKI,

    Très bonne idée et ça fonctionne très bien !!!

Discussions similaires

  1. [AC-2010] Demande d'aide sur les événements suite à la création d'un bouton
    Par steeve59510 dans le forum Access
    Réponses: 2
    Dernier message: 10/12/2014, 11h24
  2. [XL-MAC 2011] Ajouter un bouton sur les barres des outils
    Par Gogia dans le forum Excel
    Réponses: 0
    Dernier message: 28/05/2013, 09h24
  3. Réponses: 0
    Dernier message: 11/12/2010, 12h58
  4. [C#] Timer sur les évènements des messages Windows
    Par Nullos Oracle dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/09/2006, 11h33

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