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 :

[VB.NET] Listview avec checkboxes


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Points : 14
    Points
    14
    Par défaut [VB.NET] Listview avec checkboxes
    Bonjour, c'est la 1ere fois que je demande un coup de main sur ce forum, d'habitude j'arrive toujours a trouver les infos que je veux mais la j'avoue chui bloqué. Pourtant c'est pas un truc très compliqué, je vous explique : j'ai une listview avec des checkboxes en mode de vue détails et je voudrais que quand on click sur une checkbox d'un item (pas sur l'item en lui même) un msgbox demande confirmation de validation. Bon jusque la ca va pas de soucis. Le problème que j'ai c'est pour récupérer l'index de l'item qui vient de se faire checké ! J'ai pas trouvé la fonction pour ! Et la fonction Listview.FocusedItem.Index ne convient pas car l'item n'a pas le focus ... J'ai cherché dans le msdn, sur des sites et j'ai pas trouvé. Ca doit pas ètre si sorcier quand même. Arf ! Enfin voila si quelqu'un a une idée je suis preneur, d'avance

  2. #2
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Salut,
    Il existe bien un évènement dédié à cet effet, ItemChecked:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            private void MaListView_ItemChecked(object sender, ItemCheckedEventArgs e)
            {           
                //e.Item est une référence sur le ListViewItem (dé)checké
                //e.Item.Checked Si il est checké ou pas
                //e.Item.Index est l'index de l'élèment dans la ListView
                //...
            }

    J'espère que c'est ce que tu recherches .
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Raaaah j'avais pas pensé a ca ! Les heures de sommeil me font défaut la pake mon événement était bien déclaré mais j'utilisais pas les fonctions associées ! . J'ai passé trop de temps sur mon prog la, vais prendre un café. En tout cas un grand merci a toi DarkMolo pour ton aide et ta rapidité ! Sympa . Pour ceux que ca intéresse voici le code de ma procédure (je suis sous vb 2005 express)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ListView_ItemCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles ListView.ItemCheck
    'test des valeurs
    MsgBox(e.CurrentValue & " " & e.Index)
    End Sub
    Encore


    problème

  4. #4
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Encore une chose, coupes les liens avec le passé, n'utilises plus MsgBox, utilises plutôt MessageBox.Show.
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Désolé j'ai une formation de base sur VB6 alors oui certaines vieilles habitudes sont restées (et encore pire j'ai du mal a me mettre a la POO). Mais une question pourquoi passer a Messagebox.Show ? Plus de paramétrage possible ? J'l'ai jamais testé, jvais voir ca. Merci du conseil


    EDIT : Ah oui en effet plus de paramètres c'est bien pratique ca. Merci bien, adopté !

  6. #6
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    En fait, je n'ai pas d'arguments solides, MsgBox fait partie du namespace Microsoft.VisualBasic, donc l'utiliser rendra beaucoup plus difficile le port de l'application sur une autre plateforme, contrairement à MessageBox.
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Re salut, j'ai un autre ti souci qui vient de cette procédure !

    Je vous explique mon souci : au démarrage de mon log, j'ouvre une connection avec une bdd sous MySQL et je récupère les données que je met dans des listview et les checkboxes me servent a savoir si la donnée a été validée donc c'est enregistré dans la base. Donc au chargement les checkboxes sont validés par le log et malheureusement (enfin logique) cela déclenche l'événement ItemCheck dont on parlait auparavant et ca relance la procédure de validation des checkboxes, ce que je ne veux pas vu qu'elles sont déja validées !

    Alors voila je sais pas trop comment empécher ca et faire une différence entre l'appel de la procédure par l'util et par le log. Si vous avez des idées je vous en remercie d'avance.

  8. #8
    Membre actif Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Points : 277
    Points
    277
    Par défaut
    Si j'ai bien compris, tu veux que l'évènement ItemCheck ne se déclenche qu'après que tu aies chargé le tout, c'est possible, il faudra associer ta méthode à l'évènement ItemCheck au bon moment:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    'Tu dois retirer le -Handles ListView.ItemCheck-
    Private Sub ListView_ItemCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) ' Handles ListView.ItemCheck
    'test des valeurs
    MessageBox.Show(e.CurrentValue & " " & e.Index)
    End Sub
     
    Private sub AuMomentOpportun()
    'Tu abonnes ta fonction à l'évènement ItemCheck
    AddHandler MonListView.ItemCheck,AddressOf ListView_ItemCheck
     
    'Tu peux la retirer quand tu veux
    RemoveHandler MonListView.ItemCheck,AddressOf ListView_ItemCheck
    End Sub

    J'espère que c'est bien ce que tu demandes.
    Certified SCJP 5.0 / SCWCD 5.0 / SCEA 5.0
    C'est une grande folie de vouloir être sage tout seul.
    Duc de La Rochefoucauld

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Décidement, faut que je dormes un peu plus et que je reprenne de la caféine ! J'avais pensé a cette solution de suppr l'handler de la procédure mais après coment faire pour le remettre j'avais pas pensé qu'il y avait des fonctions pour ! J'aurais du faire plus de recherches dessus. Merci a toi encore une fois, tu m'as bien aidé et rapidement en plus. Bravo a toi

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

Discussions similaires

  1. [VB.NET] Problème ListView avec checkbox
    Par elkidos dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/02/2007, 15h27
  2. Listview avec checkboxes (récupérer cocher)
    Par Ardely dans le forum Delphi
    Réponses: 3
    Dernier message: 08/01/2007, 17h01
  3. [C#.NET] ListView et Checkboxes, Help !
    Par TheParadoX dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/08/2006, 14h00
  4. vb.net : treeview avec checkbox
    Par 1coni dans le forum Windows Forms
    Réponses: 11
    Dernier message: 31/05/2006, 13h18
  5. [VB.NET] Probleme avec CheckBox
    Par Aspic dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/12/2005, 11h54

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