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 :

DataGridView et copier/coller d'une ligne


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut DataGridView et copier/coller d'une ligne
    Bonjour,

    Je voudrais savoir s'il y a une facon simple de faire un copier coller d'une ligne vers une nouvelle ligne ?

    Faut il lire le clipboard comme l'indique certains articles ? ou y a t il qq chose en native avec la gridview ?

    Merci
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ton DGV est-il bindé sur une DataTable ? Si oui ça devrait être assez facile...

    Copie juste le ItemArray du DataRow courant dans le presse-papier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DataRowView drv = (DataRowView)dataGridView.CurrentRow.DataBoundItem;
    DataRow row = drv.Row;
    Clipboard.SetData("System.Object[]", row.ItemArray.ToArray());
    Et pour coller, insère le contenu du presse-papier dans une nouvelle ligne de la table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (Clipboard.ContainsData("System.Object[]"))
    {
        DataRow row = table.NewRow();
        row.ItemArray = (object[])Clipboard.GetData("System.Object[]");
        table.Rows.Add(row);
    }

  3. #3
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Merci à toi
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    Bonsoir

    je viens de tomber sur ce post qui m’intéresse

    par contre chez moi ça ne fonctionne pas :

    je me retrouve avec le message d'erreur :

    Erreur 1 'System.Array' ne contient pas une définition pour 'ToArray' et aucune méthode d'extension 'ToArray' acceptant un premier argument de type 'System.Array' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)
    je n'ai pas le "ToArray" dans l'assistant de saisie

    (pour info j'ai bien des valeurs dans le drv.row.itemArray)

    je suis sous VSE2008

    merci

    @++

    KaloOopS

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est une méthode d'extension, il doit te manquer un using System.Linq; au début du fichier

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    ha ben vi, ça va mieux effectivement je n'ai plus d'erreur

    par contre ça ne me copie rien dans le presse-papier

    du moins je pense, car je ne peux pas coller ma ligne dans un fichier texte ou excel

    ou n'est-ce peut-être pas la fonction pour faire copier pour un fichier texte ou excel ?

    @++

    KaloOopS

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par KaloOopS Voir le message
    par contre ça ne me copie rien dans le presse-papier

    du moins je pense, car je ne peux pas coller ma ligne dans un fichier texte ou excel
    Ah non, ça risque pas... à moins que Notepad sache interpréter un tableau d'objets .NET
    Si tu veux pouvoir coller les données ailleurs, il faut que tu les mettes dans le presse papier dans un autre format (CSV par exemple)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    merci

    j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                DataRowView drv = (DataRowView)dgvMateriel.CurrentRow.DataBoundItem;
                DataRow row = drv.Row;
                String copyText = string.Empty;
     
                CultureInfo ci = CultureInfo.CurrentCulture;
                String sep = ci.TextInfo.ListSeparator;
     
                foreach (object item in row.ItemArray)
                {
                    copyText += item + sep;
                }
     
                Clipboard.SetText(copyText);
    et ça marche

    merci

    @++

    KaloOopS

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/01/2015, 22h17
  2. [Débutant] Copier/ coller d'une Row d'un Datagriview 2 dans Datagridview 1
    Par jeremyvb11 dans le forum VB.NET
    Réponses: 16
    Dernier message: 14/01/2013, 20h35
  3. copier coller d'une ligne vers nouvelle table (trigger)
    Par cedric190985 dans le forum SQL
    Réponses: 1
    Dernier message: 18/05/2011, 09h08
  4. Copier/coller d'une ligne entière avec petits détails
    Par alexg33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/07/2010, 16h00
  5. [AC-2007] Problème copier/coller d'une ligne excel
    Par christophe31 dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/03/2010, 14h50

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