PDA

View Full Version : [C#...forse]mi date una mano con un "for" ?


RaouL_BennetH
19-02-2007, 12:24
Come da titolo, anche se sono un pò confuso :(

Prima di scrivere il problema, è doveroso da parte mia spiegare alcune cose:

Qualche giorno fa stavo cercando di capire come fare su un oggetto di tipo DataGridView a fare un copia incolla delle righe. Non ci sono riuscito e ho chiesto aiuto sul forum MSDN. Un programmatore mi ha indicato la strada giusta in questo modo:



private void CopyRows(DataGridView DGV, int rigaDiOrigine, int rigaDiDestinazione)
{
for (int j = 0; j < DGV.Rows[rigaDiOrigine].Cells.Count; j++)
{
DGV.Rows[rigaDiDestinazione].Cells[j].Value = DGV.Rows[rigaDiOrigine].Cells[j].Value;
}
}

//e questo codice poi lo utilizzo in questo modo:

private void bottoneCopia(object sender, EventArgs e)
{
CopyRows(miaGriglia, 0, 1);
}


Questo funziona perfettamente solo nel caso in cui io voglia copiare i valori contenuti nelle celle della riga "0" nei valori delle celle della riga "1".

Adesso, come posso fare per fare in modo che "0" e "1" siano variabili?
Nel senso che se io volessi copiare la riga 3 sulla riga 9 per esempio?

Intuisco che devo mettere la funzione CopyRows all'interno di un ciclo "for", ma non capisco come posso ottenere il valore del secondo e del terzo argomento della funzione :(

Spero che anche questa volta possiate aiutarmi come sempre.

Grazie.

RaouL.

RaouL_BennetH
19-02-2007, 14:31
Al momento sono riuscito a proseguire in questo modo, ma solo per copiare da una riga a quella immediatamente successiva:



private void btnCopia_Click(object sender, EventArgs e)
{
int myRowIndex = miaGriglia.CurrentRow.Index;
for(int count = 0; count < miaGriglia.Rows.Count; row++)
{
//funzione del primo post
CopyRows(miaGriglia, myRowIndex, myRowIndex + 1);
}
}


Aspetto sempre suggerimenti per migliorare con i vostri preziosi aiuti.

RaouL.

RaouL_BennetH
19-02-2007, 15:07
Scusa, forse non ho capito bene il tuo problema, ma non basta richiamare la funzione CopyRows passandogli come argomenti i giusti numeri di riga e colonna, eventualmente contenuti in due variabili distinte? Ad esempio, per copiare la riga 3 sulla 9 richiamerai:

CopyRows(miaGriglia, 3, 9);

Non capisco l'utilità del ciclo for....:confused:

Perchè il numero di righe da copiare non è noto a monte, nel senso che l'utente che utilizza il programma potrebbe scegliere di puntare sulla prima riga, e poi decidere di incollare il contenuto nella riga numero 27, oppure sulla 15, oppure su entrambe :)