Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C# 2005]copy/paste righe datagridview

    Ciao a tutti

    Mi potreste aiutare a capire come fare per selezionare i valori contenuti nelle celle di una riga di un datagridview ed incollarli sulla riga successiva?

    al momento seguendo degli esempi trovati sulla rete e sulla documentazione di msdn, sono riuscito a fare solo questo:

    codice:
     private void tsCopy_Click(object sender, EventArgs e)
            {
                if (dataGridView1.GetCellCount(DataGridViewElementStates.Selected) > 0)
                {
                    try
                    {
                        Clipboard.SetDataObject(dataGridView1.GetClipboardContent());
                        for(int rw = 3; rw < 8; rw++)
                        {
                            dataGridView1.CurrentRow.Cells[rw].Value = ClipBoard.GetText();
                        }
     
                    }
                    catch (System.Runtime.InteropServices.ExternalException)
                    {
                        MessageBox.Show("Impossibile copiare");
                    }
                }
            }
    In questo modo però, riesco solo a copiare appunto sulla riga corrente e non su quella successiva.

    Prima di postare ho fatto una ricerca anche nel forum e ho dato uno sguardo alle "pillole".

    Se non ho guardato bene e la risposta dovesse già esserci chiedo scusa in anticipo.

    Grazie Mille.

    RaouL.

  2. #2
    Allora, sul forum ufficiale MSDN mi hanno indicato questa soluzione, la posto sperando che possa essere utile anche a qualcun altro:

    codice:
    private void CopyRows(DataGridView DGV, int sourceRowID, int destinationSourceID)
    {
        for(int j = 0; j < DGV.Rows[sourceRowID].Cells.Count; j++)
        {
            DGV.Rows[destinationRowID].Cells[j].Value = DGV.Rows[sourceRowID].Cells[j].Value;
        }
    }
    
    //poi si può passare ad un evento in un button command per esempio, la funzione:
    
    private void btnCopyRows(object sender, Eventargs e)
    {
        CopyRows(myDataGridView, x, y); //dove x ed y rappresentano la riga di origine e di destinazione
    }
    Spero che qualche guru in giro possa commentare e/o rendere migliore questo spezzone di codice.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.