Changer ordre ligne DatagridView

Résolu
cs_roro69
Messages postés
70
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
29 septembre 2018
- 3 déc. 2016 à 10:12
cs_roro69
Messages postés
70
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
29 septembre 2018
- 4 mars 2017 à 17:58
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

cs_Le Pivert
Messages postés
7745
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
20 mai 2022
129
3 déc. 2016 à 11:15
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


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

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


--
0