Salve,
Ho una DataGridView nel Form1, quello che vorrei fare è copiare il contento delle celle selezionate e incollarle in una seconda DataGridView collocata nel Form2.
Per la funzione copia ho usato questo codice che sembra funzionare senza problema :
Il problema viene ora, cioè quando il programma dovrebbe andare a incollare il contenuto copiato grazie al codice di sopra nelle seconda DataGridView, quella situata nel Form2.
Il codice che ho usato è il seguente :
Il problema è che quando eseguo questo codice ottengo questo errore : "Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione della raccolta."Se può esservi di aiuto ho anche notato che se eseguo soltanto il codice per incollare le celle senza aver prima eseguito quello per copiarle non ottengo nessun errore e il codice risulta funzionante. Sapreste dirmi a cosa è dovuto questo errore e cosa dovrei fare per risolverlo?
Grazie Mille
Ho una DataGridView nel Form1, quello che vorrei fare è copiare il contento delle celle selezionate e incollarle in una seconda DataGridView collocata nel Form2.
Per la funzione copia ho usato questo codice che sembra funzionare senza problema :
Codice:
DataGridView1.SelectAll()
Clipboard.SetDataObject(Me.DataGridView1.GetClipboardContent())
Il codice che ho usato è il seguente :
Dim srFormattedData As String
Dim s() As String
Dim t As String
Dim C() As String
Dim objSpreadSheetData As IDataObject = Clipboard.GetDataObject
srFormattedData = Clipboard.GetText()
srFormattedData = srFormattedData.Replace(vbCrLf, Chr(13))
Dim charSeparators() As Char = {Chr(13)}
s = srFormattedData.Split(charSeparators) ' StringSplitOptions.RemoveEmptyEntries)
Dim I As Short = 0
Dim I2 As Integer = 0
Dim Pos As Integer =Form2.DataGridView1.CurrentRow.Index
For Each t In s
t = t.Replace(vbTab, ";")
C = t.Split(";")
Form2.DataGridView1.Rows.Add(1)
For Each N In C
Form2.DataGridView1.Rows(Pos + I).Cells(I2).Value = N
I2 += 1
Next
I += 1
I2 = 0
Next
Dim s() As String
Dim t As String
Dim C() As String
Dim objSpreadSheetData As IDataObject = Clipboard.GetDataObject
srFormattedData = Clipboard.GetText()
srFormattedData = srFormattedData.Replace(vbCrLf, Chr(13))
Dim charSeparators() As Char = {Chr(13)}
s = srFormattedData.Split(charSeparators) ' StringSplitOptions.RemoveEmptyEntries)
Dim I As Short = 0
Dim I2 As Integer = 0
Dim Pos As Integer =Form2.DataGridView1.CurrentRow.Index
For Each t In s
t = t.Replace(vbTab, ";")
C = t.Split(";")
Form2.DataGridView1.Rows.Add(1)
For Each N In C
Form2.DataGridView1.Rows(Pos + I).Cells(I2).Value = N
I2 += 1
Next
I += 1
I2 = 0
Next
Il problema è che quando eseguo questo codice ottengo questo errore : "Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione della raccolta."Se può esservi di aiuto ho anche notato che se eseguo soltanto il codice per incollare le celle senza aver prima eseguito quello per copiarle non ottengo nessun errore e il codice risulta funzionante. Sapreste dirmi a cosa è dovuto questo errore e cosa dovrei fare per risolverlo?
Grazie Mille