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#] Detecter la perte de focus


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut [C#] Detecter la perte de focus
    Bonjour,

    je code en C# sous VS.net.
    J'ai une listview quand on selectionne une ligne sa active un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    button2.Enabled = true ;  
    }
    J'aimerais que quand aucune ligne ne soit selectioné dans la listview que le bouton soit desactivé ( par exemple cette lisview contient des adresse que quand toutes les adresse soit suprimés et qu'on reclique sur le bouton ( button2 ) sa ne genere pas une erreur
    Comment faire ?

    merci

  2. #2
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Salut,

    Bien si aucune ligne du ListView est activée, c'est que le ListView n'a pas
    le Focus, non ?!

    Dans ce cas tu peut te servir de l'évènement Focus du ListView
    avec la fonction Leave :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void listView1_Leave(object sender, EventArgs e)
            {
                button2.Enabled = false;
            }
    Si c'est ce que tu cherches

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void listView1_GotFocus(object sender, System.EventArgs e)
    {
    button2.Enabled = true ; 
    } 
    private void listView1_LostFocus(object sender, System.EventArgs e)
    {
    button2.Enabled = false; 
    }

  4. #4
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Si un listview perd le focus, ça ne veut pas dire qu'il n'y a pas de lignes sélectionnées dedans !!!

    Tu dois tester à chaque click dans ta listview s'il y a des lignes sélectionnées ou non, et griser/activer le bouton en fonction.

    @+

  5. #5
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par zitoun
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void listView1_GotFocus(object sender, System.EventArgs e)
    {
    button2.Enabled = true ; 
    } 
    private void listView1_LostFocus(object sender, System.EventArgs e)
    {
    button2.Enabled = false; 
    }
    Sa marche pas

    Je reformule : j'aimerais que le bouton soit desactivé quand aucune ligne n'est selectioné dans la listview

  6. #6
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Bien déjà c'est pas "Lost Focus" mais bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void listView1_Leave(object sender, EventArgs e) 
            { 
                button2.Enabled = false; 
            }
    Quand le listview perd le focus !
    Ou alors ça dépend du logiciel, framework...

    Je pense qu'il faut appliquer la méthode à SLE

  7. #7
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    tres simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
            Button1.Enabled = ListView1.SelectedItems.Count > 0
        End Sub

  8. #8
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    C'est pas du VB ça ?!
    ça marche en C# le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Button1.Enabled = ListView1.SelectedItems.Count > 0
    ?!

  9. #9
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    As-tu testé ?
    la propriété Enabled est de type booléen
    (ListView1.SelectedItems.Count > 0) est une expression Booléenne qui renvoie vrai si il y a au moins un élément sélectionné, Faux sinon.
    tu n'as plus qu'a traduire l'affectation = de VB en C# !..

  10. #10
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    Merci de tous vos codes je vais les testés et je vous tient informé

  11. #11
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 184
    Points : 56
    Points
    56
    Par défaut
    C'est bon sa marche
    merci à tous topic resolu

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

Discussions similaires

  1. [JTabbedPane] et perte de focus
    Par Ofunk dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 17/03/2006, 12h22
  2. Réponses: 9
    Dernier message: 02/02/2006, 15h46
  3. Comment détecter la perte de focus d'une fenêtre
    Par Leviathan_72 dans le forum Windows
    Réponses: 5
    Dernier message: 31/12/2005, 00h22
  4. excel -> test lors de la perte du focus d'une cellule
    Par greg778 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 26/09/2005, 17h26
  5. [VB.NET] Perte de focus entre deux form
    Par toniolol dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2005, 08h00

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