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 2005] Cope de datagridview


Sujet :

Windows Forms

  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 401
    Par défaut [VB.net 2005] Cope de datagridview
    Pour une raison bien particulière j'ai besoins de copier un datagridview rempli via datasource.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim Copie as datagridview
    Dim Table as datatable
     
    datagridview_Copie = datagridview_Principal
    Table = datagridview_Copie.datasource
    Table.Columns.RemoveAt(2)
    Après ce bout de code la datasource du datagridview_Principal a été modifié également et moi je veux pas.
    Je voudrais une copie qui soit une copie et non une référence sur la source !

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 182
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 182
    Par défaut
    Bonjour.

    monObjet = monDatagridview, c'est faire pointer monObjet et monDatagridview sur la même adresse en mémoire (c'est des objets !!!). Donc c'est le même objet qui est pointé par monObjet et par monDatagridview --> tu changes l'un, ça change l'autre ...

    Il existe bien le memberwiseclone, mais c'est clairement pourri, on le comprend en lisant l'aide :
    La méthode MemberwiseClone crée une copie superficielle en créant un nouvel objet puis en copiant les champs non statiques de l'objet actuel vers le nouvel objet. Si le champ est un type valeur, il est copié bit par bit. S'il s'agit d'un type référence, la référence est copiée, mais l'objet référencé ne l'est pas. Par conséquent, l'objet d'origine et son clone se réfèrent au même objet.

    A vue de pif, c'est une méthode à créer à la main...

    Personnellement, je vois pas l'utilité ... c'est quoi le but ?

    Cdt.

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2003
    Messages : 401
    Par défaut
    le but était à la base de faire simple et de prendre un raccourci mais j'ai du me perdre en route.
    c'est pas grave j'ai pensé à une autre solution.

    en tout cas je te remercie pour ton aide.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/05/2008, 15h07
  2. [VB.NET 2005] Performance Datagridview
    Par ricil78 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2007, 10h27
  3. [VB.net 2005] datagridview + retour à la ligne
    Par ricil78 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/04/2007, 16h39
  4. [VB.NET 2005] DataGridView et CheckBox
    Par nathanaelle dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/08/2006, 10h16
  5. [VB.NET 2005] DataGridView
    Par olifile dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/04/2006, 22h50

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