Voici un exemple qui fonctionne.
Mettre 2 DataGridView et 1Button
Option Strict Off
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'*******************************************************
'on rempli la 1ère Datagridview
'********************************************************
'On met 5 colonnes
DataGridView1.ColumnCount = 5
'On colore les en-têtes, on met les fonts
With DataGridView1.ColumnHeadersDefaultCellStyle
.BackColor = Color.Navy
.ForeColor = Color.White
.Font = New Font(DataGridView1.Font, FontStyle.Bold)
End With
'on positionne la grille
With DataGridView1
Dim chk As New DataGridViewCheckBoxColumn()
.Size = New Size(600, 220)
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
.CellBorderStyle = DataGridViewCellBorderStyle.Single
.GridColor = Color.Black
.RowHeadersVisible = False
'On donne le nom des colonnes
.Columns.Add(chk)
chk.HeaderText = "checkbox"
.Columns(0).Name = "Date"
.Columns(1).Name = "Piste"
.Columns(2).Name = "Titre"
.Columns(3).Name = "Artiste"
.Columns(4).Name = "Album"
.Columns(5).DefaultCellStyle.Font = New Font(Me.DataGridView1.DefaultCellStyle.Font, FontStyle.Italic)
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = True
.Dock = DockStyle.Fill
End With
'Création d'un tableau de 5 strings pour chaque ligne
Dim row0 As String() = {"11/22/1968", "29", "Revolution 9", "Beatles", "The Beatles [White Album]"}
Dim row1 As String() = {"1960", "6", "Fools Rush In", "Frank Sinatra", "Nice 'N' Easy"}
Dim row2 As String() = {"11/11/1971", "1", "One of These Days", "Pink Floyd", "Meddle"}
Dim row3 As String() = {"1988", "7", "Where Is My Mind?", "Pixies", "Surfer Rosa"}
Dim row4 As String() = {"5/1981", "9", "Can't Find My Mind", "Cramps", "Psychedelic Jungle"}
Dim row5 As String() = {"6/10/2003", "13", "Scatterbrain. (As Dead As Leaves.)", "Radiohead", "Hail to the Thief"}
Dim row6 As String() = {"6/30/1992", "3", "Dress", "P J Harvey", "Dry"}
With Me.DataGridView1.Rows
'Ajout de ligne
.Add(row0)
.Add(row1)
.Add(row2)
.Add(row3)
.Add(row4)
.Add(row5)
.Add(row6)
End With
With Me.DataGridView1
'Ordre des colonnes
.Columns(0).DisplayIndex = 3
.Columns(1).DisplayIndex = 4
.Columns(2).DisplayIndex = 1
.Columns(3).DisplayIndex = 2
.Columns(4).DisplayIndex = 5
.Columns(5).DisplayIndex = 0
End With
'*******************************************************
'on rempli la 2ème Datagridview
'********************************************************
'On met 5 colonnes
DataGridView2.ColumnCount = 5
'On colore les en-têtes, on met les fonts
With DataGridView2.ColumnHeadersDefaultCellStyle
.BackColor = Color.Navy
.ForeColor = Color.White
.Font = New Font(DataGridView2.Font, FontStyle.Bold)
End With
'on positionne la grille
With DataGridView2
Dim chk As New DataGridViewCheckBoxColumn()
.Size = New Size(600, 200)
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
.CellBorderStyle = DataGridViewCellBorderStyle.Single
.GridColor = Color.Black
.RowHeadersVisible = False
'On donne le nom des colonnes
.Columns.Add(chk)
chk.HeaderText = "checkbox"
.Columns(0).Name = "Date"
.Columns(1).Name = "Piste"
.Columns(2).Name = "Titre"
.Columns(3).Name = "Artiste"
.Columns(4).Name = "Album"
.Columns(4).DefaultCellStyle.Font = New Font(Me.DataGridView2.DefaultCellStyle.Font, FontStyle.Italic)
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = True
' .Dock = DockStyle.Fill (
End With
With Me.DataGridView2
'Ordre des colonnes
'Ordre des colonnes
.Columns(0).DisplayIndex = 3
.Columns(1).DisplayIndex = 4
.Columns(2).DisplayIndex = 1
.Columns(3).DisplayIndex = 2
.Columns(4).DisplayIndex = 5
.Columns(5).DisplayIndex = 0
End With
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
For i As Integer = 0 To DataGridView1.RowCount - 1
If DataGridView1.Item(5, i).Value = True Then '5 colonne où se trouve le checkbox
DataGridView2.Rows.Add(DataGridView1.Item(0, i).Value, DataGridView1.Item(1, i).Value, DataGridView1.Item(2, i).Value, DataGridView1.Item(3, i).Value, DataGridView1.Item(4, i).Value)
End If
Next
End Sub
End Class
Voilà