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 :

ListView : recuperer la valeur sélectionnée


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut ListView : recuperer la valeur sélectionnée
    Bonjour,

    j'ai pas l'impression de demander la lune à Visual Studio quand je demande de me donner la valeur sélectionnée dans un listview. J'ai une fenêtre avec un champs et un bouton. On clique sur le bouton une autre fenêtre s'ouvre avec un listview. Je sélectionne une valeur, au clique sur la liste, je souhaite avoir la valeur sélectionnée dans le champ de la fenêtre appelante.

    J'ai fait dans la fenetre appelante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Fontion de remplissage du champs codeclient
            public void fCodeClient(string strValeur)
            {
                this.txtCodeClient.Text = strValeur;
     
            }
     
            private void btnParcourirClient_Click(object sender, EventArgs e)
            {
                frmCodeClient fr = new frmCodeClient();
                fr.Show();
            }
    Dans la fenetre Appelée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            private void lvCodeClient_SelectedIndexChanged(object sender, EventArgs e)
            {
                frmPrincipale fr = new frmPrincipale();
                Int32 intIndex = lvCodeClient.SelectedItems[0].Index;
                MessageBox.Show(lvCodeClient.Items[intIndex].SubItems[1].Text);
                fr.fCodeClient(lvCodeClient.Items[intIndex].SubItems[1].Text);
            }
    Mais ca ne fonctionne pas! Mon champs txtCodeClient reste vide et en plus quand je clique une seconde fois dans la liste j'ai une erreur:
    Invalid argument=La valeur '0' n'est pas valide pour 'index'

    Pouvez vous m'aider svp?

    Alex

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 102
    Par défaut
    topn evenement doit avoir en second paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListViewItemSelectionChangedEventArgs e
    au lieu de
    ainsi, après tu peux connaitre d'après la valeur de e.item, le texte correspondant.
    pour l'erreur au second clic, vérifie les propriétés de ta listview..
    multiselect, activation...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 46
    Par défaut
    Aïe les fautes

    Bon ben en plusieurs fois :

    1ère partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private void lvCodeClient_SelectedIndexChanged(object sender, EventArgs e)
            {
                frmPrincipale fr = new frmPrincipale();
    ce n'est pas bon, en faisant ça tu créer une nouvelle instance de ta Form principale, du coup tu n'es plus dans le bon contexte.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 46
    Par défaut
    2ème partie :

    Une des solutions consiste à surcharger le constructeur de ta 2ème Form
    exemple :
    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
     
        private FormPrincipale fr;
     
        public Form2()
        {
          InitializeComponent();
        }
     
        public Form2(FormPrincipale formPrincipale)
        {
          InitializeComponent();
          fr= formPrincipale;
        }
     
        private void lvCodeClient_SelectedIndexChanged(object sender, EventArgs e)
        {
            Int32 intIndex = lvCodeClient.SelectedItems[0].Index;
            MessageBox.Show(lvCodeClient.Items[intIndex].SubItems[1].Text);
            fr.ValeurListView = lvCodeClient.Items[intIndex].SubItems[1].Text;
            this.Close();
        }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 46
    Par défaut
    3ème et dernière partie :

    ensuite dans ta form principale tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        // Accesseur public vers la propriété text de ton txtCodeClient
        public String ValeurListView
        {
          get { return txtCodeClient.Text; }
          set { txtCodeClient.Text = value; }
        }
     
        private void btnParcourirClient_Click(object sender, EventArgs e)
        {
             frmCodeClient fr = new frmCodeClient(this);
             fr.Show();
        }
    C'est pas forcément la meilleure soluce mais j'ai fait en speed

    Je ne sais pas ce qui ce passe avec mon Browser mais... impossible de poster un message contenant 3 balise CODE ????


    En espérant t'avoir aidé.
    Bigy

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut
    Merci bien,

    je vais regarder ça de plus près et dire si c'est ok.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 81
    Par défaut
    Mais nom d'un petit bonhomme en mousse... ça marche!

    Merci bien.

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

Discussions similaires

  1. [XL-2007] recuperation de valeur listview
    Par lillyrose dans le forum Excel
    Réponses: 1
    Dernier message: 02/04/2014, 00h12
  2. Réponses: 17
    Dernier message: 28/08/2012, 02h32
  3. Recuperer la valeur d'un colonne dans une listview
    Par skunkies dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/01/2009, 17h26
  4. Réponses: 14
    Dernier message: 24/05/2006, 17h05
  5. [MySQL] recuperer une valeur dans un listview
    Par genebaud dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/10/2005, 23h43

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