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 :

Ajouter des propriétés à DataGridViewRow


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Par défaut Ajouter des propriétés à DataGridViewRow
    Boujour à tous,

    Alors voila, je voudrais créer une classe "ligneDGV" héritée de DataGridViewRow pour lui ajouter des propriétés.

    Ca donne quelque chose comme ça :
    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
     
       public class ligneDGV: DataGridViewRow
        {
            string maRef = "";
            int monNiveau = 1;
            public string Reference
            {
                set { maRef = value; }
                get { return maRef; }
            }
            public int Niveau
            {
                set { monNiveau = value;}
                get { return monNiveau; }
            }
        }
    Pour ajouter une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        private void nouvelle_ligne(string ref, short niveau)
        {
    		LigneDVG ligne = new ligneDGV();
    		ligne.Reference = ref;
    		ligne.Niveau = niveau;
    		monContenu.dataGridView1.Rows.Add(ligne);
        }
    Ca fonctionne quand je n'ai qu'une ligne. Dès qu'il y en a plusieurs, les valeurs "Reference" et "Niveau" sont perdues (elles reviennent aux valeurs par défaut).

    J'ai sûrement fait quelque chose de travers mais je ne vois pas quoi.

    J'ai vu ça sur MSDN :
    Notes to Inheritors
    When you derive from DataGridViewRow and add new properties to the derived class, be sure to override the Clone method to copy the new properties during cloning operations. You should also call the base class's Clone method so that the properties of the base class are copied to the new cell.
    Mais même après des heures et des heures de recherches, je ne comprend toujours pas à quoi sert cette méthode Clone, ni ce que je suis censée en faire, ni même si ça a quelque chose à voir avec le problème...

    Je continue mes recherches, mais votre aide me serait très précieuse.

    Merci d'avance !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 6
    Par défaut
    Évidemment, il suffit que je poste ma question pour que la réponse m'apparaisse toute seule...

    Donc il s'agissait bien de la méthode "Clone" qu'il faut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         public override object Clone()
         {
              return this;
         }
    à ajouter dans ma classe LigneDGV, et ça marche.

    Puis au moment de récupérer ma ligne pour utiliser les infos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         LigneDGV ligne = (LigneDGV)dataGridView1.Rows[e.RowIndex].Clone();
    Ça parait tellement simple que j'en reviens pas d'avoir cherché si longtemps... Par contre, je ne comprend pas à quoi sert cette méthode, ni pourquoi ça ne fonctionnait pas avant, donc si quelqu'un peut m'expliquer, je suis preneuse !

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

Discussions similaires

  1. [Débutant] Ajouter des Propriétés à un contrôle personnalisé
    Par Invité dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/06/2011, 14h56
  2. Ajouter des propriétés au TMenuItem en DesignTime
    Par rataflüp dans le forum Composants VCL
    Réponses: 3
    Dernier message: 11/02/2009, 16h06
  3. Ajouter des propriétés à une collection
    Par Hadware dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/01/2009, 16h27
  4. [c#/UserControl] Ajout des nouvelles propriétés
    Par layouni dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/04/2007, 10h02
  5. Réponses: 1
    Dernier message: 28/03/2007, 15h12

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