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 :

Pq une combobox reste bloquée avec le focus si CausesValidation = true ?


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de dsolheid
    Inscrit en
    Décembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 141
    Par défaut Pq une combobox reste bloquée avec le focus si CausesValidation = true ?
    Bonjour,

    J'ai des combobox sur un Form (DropDownStyle : DropDownList)
    Uniquement un event est attribué à la Combo : SelectedIndexChanged.

    Même quand je mets le code de l'évent en commentaire, .. @ runtime, si je choisis une valeur dans la ComboBox, la valeur est affichée, l'évent est déclenché, mais le focus reste sur le controle, et plus moyen de le déplacer ?!!

    Par contre, en mettant la propriété CausesValidation à False, .. le problème disparaît.

    Une idée ?

    ps: je remplis la ComboBox à la main (pas de Data Binding)

  2. #2
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Et, c'est quoi le code de ton évennement, tu as pensé à regarder à quoi servait Causevalidatiojn sur le net, pour voir comment ça marche etc?

    Va voir la MSDN.

  3. #3
    Membre confirmé Avatar de dsolheid
    Inscrit en
    Décembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 141
    Par défaut
    Citation Envoyé par Poulain Voir le message
    Et, c'est quoi le code de ton évennement, tu as pensé à regarder à quoi servait Causevalidatiojn sur le net, pour voir comment ça marche etc?

    Va voir la MSDN.
    Bonsoir,

    Le code de l'event SelectedIndexChanged de ma Combo est simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            If ProvinceComboBox.SelectedItem() IsNot Nothing Then
                Dim item As ComboItem = ProvinceComboBox.SelectedItem
                Me.Table_OrganisateurBindingSource.Current.Row.Item("Province") = item.Value()
            End If
    Mais MêME si je mets ce code en commentaire, le problème persiste...
    Si je met CausesValidation à FALSE, je n'ai plus de soucis.

    Sinon, j'ai trouvé ceci, concernant le CausesValidation:

    Événement Validate des contrôles
    Les contrôles génèrent aussi un événement Validate qui est déclenché avant que le contrôle ne perde le focus. Toutefois, cet événement survient uniquement lorsque la propriété CausesValidation du contrôle sur le point de recevoir le focus est à True. Dans de nombreux cas, l'événement Validate est plus approprié que l'événement LostFocus pour la validation des données parce qu'il survient avant la perte du focus. Pour plus d'informations, reportez-vous à la section « Validation de l'entrée d'un contrôle par restriction du focus » du chapitre 7, « Utilisation des contrôles standard de Visual Basic ».

    Validation des données de contrôle par restriction du focus

    L'événement Validate et la propriété CausesValidation sont utilisés de paire pour vérifier l'entrée d'un contrôle avant d'autoriser l'utilisateur à le désactiver. Prenons, par exemple, une application contenant plusieurs zones de texte et un bouton Aide. Lorsque chaque zone de texte reçoit le focus, vous devez empêcher les utilisateurs de déplacer ce focus tant que les critères de validation spécifiques de la zone de texte ne sont pas remplis. Toutefois, vous devez également autoriser les utilisateurs à cliquer sur le bouton Aide à tout moment. Pour cela, vous devez affecter la valeur False au critère de validation de l'événement Validate ainsi qu'à la propriété CausesValidation du bouton Aide. Si la propriété a la valeur True (paramètre par défaut), l'événement Validate interviendra sur le premier contrôle. En revanche, si elle a la valeur False, l'événement Validate affecté au premier contrôle n'interviendra pas.

    L'événement Validate est mieux adapté à la validation de saisie de données que l'événement LostFocus parce que, par définition, l'événement LostFocus intervient une fois le focus déplacé. En revanche, l'événement Validate vous permet d'empêcher le déplacement du focus vers un autre contrôle tant que toutes les conditions de validation ne sont pas remplies.

  4. #4
    Membre éprouvé

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            If ProvinceComboBox.SelectedItem() IsNot Nothing Then
                Dim item As ComboItem = ProvinceComboBox.SelectedItem
                Me.Table_OrganisateurBindingSource.Current.Row.Item("Province").value = item.Value()
            End If
    et en ajoutant le ".value", ça marche ou pas? quoi que si c'était ça tu aurais une erreur...
    Là, je bloque

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/07/2012, 14h38
  2. [2.x] Filtrer une ComboBox trop longue avec Symfony
    Par maarek dans le forum Symfony
    Réponses: 5
    Dernier message: 06/02/2012, 22h49
  3. Réponses: 14
    Dernier message: 25/11/2005, 14h22
  4. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  5. Réponses: 2
    Dernier message: 26/07/2004, 13h34

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