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

C# Discussion :

Récuperer valeur premiere colonne listview [Débutant]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Récuperer valeur premiere colonne listview
    Bonjour à tous,

    J'ai un soucis sur une application en effet, j'ai une listview avec 3 colonnes et dans la première colonne j'ai l'ID d'un client, je voudrais qu'au clic sur la ligne de la listview correspondant au client choisi, j'ai son ID stocké dans une variable et que cette variable puisse être utilisé dans une autre fonction du même usercontrol.

    Car actuellement j'utilise l'évènement : listview_click(object sender, EventArgs e) mais cet évènement ne me permet pas de faire un retour avec une variable car je n'arrive pas à faire un événement en int plutôt qu'en void.

    Merci d'avance

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    pourquoi voudrais-tu qu'un event renvoie un int ? C'est pas comme si tu pouvais récupérer cette valeur de toute façon vu que c'est pas toi qui l'appelle. De ce que je comprends de ta demande il faudrait que tu crées un attribut au niveau de ton UserControl auquel tu assignes une valeur lorsque tu passes dans l'event click. Ensuite tu pourras l'utiliser partout dans le code ton UserControl, voire en-dehors s'il est public/possède un accesseur.

    Bon dev.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Merci de m'avoir répondu mais je suis débutant et je n'ai pas bien compris.

    Il est impossible d'avoir un retour sur un évènement en C# ? Si oui, comment dois-je procéder car je ne connais pas les attributs ?

    Cordialement,

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Arf, tu pars de loin.

    Un attribut c'est une variable déclarée au niveau de ta classe, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public class MaClasse {
        public string MonAttribut;
    }
    Un event handler c'est un fonction qui va, comme son nom l'indique, prendre en charge un événement.
    Sa forme (type de retour, paramètres) doit correspondre à l'événement qu'on veut prendre en charge.

    Au moment de la création d'un contrôle on va "abonner" cette fonction à l'événement choisi. Cet abonnement est fait automatiquement dans le fichier xxx.designer.cs lorsque tu passes par le mode designer (en double-clickant sur un élément ou en passant par la fenêtre des événements). Mais rien ne t'empêche de le faire manuellement. Le code ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    monControl.Click += new System.EventHandler(monControl_Click);
    // en considérant que tu aies bien une fonction définie ainsi :
    // private void monControl_Click(object sender, EventArgs e) {}
    Quand l'événement se produit ta fonction sera alors automatiquement appelée, tu n'as donc pas la maîtrise dessus et ne peux récupérer une éventuelle valeur de retour de cet appel.

    En espérant que ces explications ne t'embrouillent pas plus qu'elles ne t'aident.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Non non cela ne m'embrouille pas plus et je t'en remercie.

    En ce qui concerne l'attribut en fait c'était bon c'est juste que j'avais pas mis un nom sur la chose donc pour te montrer plus en détails voici ce que j'ai actuellement :

    Cet évènement permet au clic sur la ligne du client correspondant de récuperer la première colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void listViewClientsPresents_Click(object sender, EventArgs e)
            {
     
                string Sejour = listViewClientsPresents.SelectedItems[0].Text;
            }
    Je voudrais donc que la variable Sejour puisse être utilise ailleurs dans mon code plûtot que seulement ici.

    Je voudrais pouvoir l'utiliser dans une autre fonction en gros.

    Car en fonction de la valeur de Sejour mon autre fonction réalise des actions différentes et actuellement comme je ne peux pas récupérer cette valeur les actions sont tout le temps les mêmes.

    J'espère également t'avoir éclairé sur mon problème.

    Cordialement,

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Si tu veux que ta variable Sejour soit visible en-dehors de ton event handler alors il faut la déclarer au niveau de la classe, et non localement dans ta fonction. Ça donnerait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private string Sejour;
    public void listViewClientsPresents_Click(object sender, EventArgs e) {
        Sejour = listViewClientsPresents.SelectedItems[0].Text;
    }
    On peut également noter que tu ne te sers des paramètres de ton event handler, du coup pourquoi vouloir passer par lui ? L'expression listViewClientsPresents.SelectedItems est valide dans toute ta classe (mais il faudra penser à vérifier que la collection n'est pas vide avant de manipuler ses éléments).

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Ah bon ? si je ne fais que cette ligne dans l'évènement je peux le supprimer et passer directement la ligne dans la classe ?

    Si oui, ce serait beaucoup plus simple

    Je test ça merci beaucoup

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Re,

    Je viens de test ce que tu m'a dis.

    Du coup, je garde l'évènement clic car j'aurais surement du code en plus dans l'évènement.

    j'obtiens ceci :

    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
    public string Sejour;
            public void listViewClientsPresents_Click(object sender, EventArgs e)
            {
                Sejour = listViewClientsPresents.SelectedItems[0].Text;
     
            }
            public string Id_Sejour
            {
                get
                {
                    return Sejour;
                }
                set
                {
                    Sejour = value;
                }
            }
    En revanche le code ne mets pas d'erreur mais l'application ne s'execute pas quand je mets la valeur dans mon autre fonction.

    En effet ici, je suis dans l'usercontrol1 et mon autre fonction est dans l'usercontrol2

    De ce fait, je fais ceci dans le usercontrol2 pour pouvoir avec ma variable Sejour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserControl2 control2 = new UserControl2();
    Mais quand j'écris ça le programme ne démarre jamais donc je suppose que le problème viens de là.

    Peut etre ne faut il pas faire comme ça pour récupérer la valeur issu de l'ascenseur de l'autre userControl.

    Merci d'avance

    J'espère avoir été clair.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Si tu peux m'aider car je galère toujours

  10. #10
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    c'est Noyel j'étais plus là (pareil cette semaine, je suis là que 3 jours).
    Toujours tes soucis ou c'est corrigé ?

    Pour info, pour accéder à la valeur d'un attribut d'une classe C1 depuis une classe C2 il faut :
    - soit que C2 ait une référence vers l'objet C1,
    - soit que l'attribut de C1 soit static (partagé par toutes les instances de C1).

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    C'est bon merci tout est réglé.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/03/2015, 17h49
  2. [XL-2010] Calcul Somme Colonne Listview Selon Valeur d'une autre colonne.
    Par alfadz dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/09/2014, 20h18
  3. [SQL-Server] Requête insert : récuperer valeur colonne
    Par laloune dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/05/2013, 15h58
  4. Réponses: 1
    Dernier message: 15/05/2012, 20h41
  5. Récuperer valeur d'une colonne d'une base de données
    Par Mihalis dans le forum Bases de données
    Réponses: 4
    Dernier message: 10/04/2006, 10h55

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