Changer ordre ligne DatagridView [Résolu]

Signaler
Messages postés
70
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
29 septembre 2018
-
Messages postés
70
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
29 septembre 2018
-
Bonjour, et d'avance merci pour l'aide apporté et le temps consacré
Voici mon problème
Je souhaite dans un datagridview ;monter ou descendre la ligne selectionnée voilà pour le moment ce que j'ai tenté:

Private Sub BougerLigne(ByVal i As Integer)

Try
Dim dgv As DataGridView = DataGridView1
If (dgv.SelectedCells.Count > 0) Then

Dim curr_index As Integer = dgv.CurrentCell.RowIndex

Dim curr_col_index As Integer = dgv.CurrentCell.ColumnIndex

Dim curr_row As DataGridViewRow = dgv.CurrentRow

dgv.Rows.Remove(curr_row)

dgv.Rows.Insert(curr_index + i, curr_row)

dgv.CurrentCell = dgv(curr_col_index, curr_index + i)

End If

Catch ex As Exception

' 'Ne rien faire en cas d'erreur lors de la tentative de déplacer la ligne vers le haut ou vers le bas

End Try

End Sub

Private Sub Monter_Click(sender As Object, e As EventArgs) Handles Button3.Click
'Si déjà sur la première ligne, ne pas essayer de déplacer la ligne vers le haut
If DataGridView1.CurrentCell.RowIndex = 0 Then
Exit Sub
End If
BougerLigne(-1) ' Bouge Ligne-1
End Sub

Private Sub Descendre_Click(sender As Object, e As EventArgs) Handles Button4.Click
'Si déjà sur la rangée du bas, ne pas essayer de déplacer la ligne vers le bas
If DataGridView1.CurrentCell.RowIndex = DataGridView1.RowCount - 1 Then
Exit Sub
End If
BougerLigne(1) 'Bouge ligne +1
End Sub

Avec ce code ; les lignes ce déplacent correctement ; mais j'ai une colonne de type image et là par contre les cellules ne bougent pas.
Quelle solution pourrais je trouvé
Merci

--

2 réponses

Messages postés
7381
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 mai 2021
122
Bonjour,

Comme ceci:

 'Deplacer up down
    Private Sub MoveRow(ByVal i As Integer)
        Try
            If (DataGridView1.SelectedCells.Count > 0) Then
                Dim curr_index As Integer = DataGridView1.CurrentCell.RowIndex
                Dim curr_col_index As Integer = DataGridView1.CurrentCell.ColumnIndex
                Dim curr_row As DataGridViewRow = DataGridView1.CurrentRow
                DataGridView1.Rows.Remove(curr_row)
                DataGridView1.Rows.Insert(curr_index + i, curr_row)
                DataGridView1.CurrentCell = DataGridView1(curr_col_index, curr_index + i)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    'monter item
    Private Sub cmdup_Click(sender As System.Object, e As System.EventArgs) Handles cmdup.Click
        If DataGridView1.CurrentCell.RowIndex = 0 Then
            Exit Sub
        End If
        MoveRow(-1) ' move up in the datagridview (row index is 1 less)
      End Sub
    'descendre item
    Private Sub cmddown_Click(sender As System.Object, e As System.EventArgs) Handles cmddown.Click
        If DataGridView1.CurrentCell.RowIndex = DataGridView1.Rows.Count - 2 Then
            Exit Sub
        End If
        MoveRow(1) ' move down in the datagridview (row index is 1 more)
  End Sub



Essayé sur ce programme avec succès:


http://codes-sources.commentcamarche.net/source/101574-import-excel-dans-datagridview-en-vb-net


Messages postés
70
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
29 septembre 2018

Bonjour et vraiment désolé pour le retard(Souci médical) du remerciement en tout cas merci beaucoup
çà marche Parfaitement Merci


--