Suppression Row dans une DataGridView avec click droit
Bonjour tout le monde !
Voilà après de longue recherche j'ai réussi à avoir un code qui correspond à ma demande mais je bloque sur un petit pépin et votre aide me permettra d'avancer sur mon projet.
J'ai donc une DataGridView (nommé DataGridXML) dans laquelle je récupère le contenu d'un fichier XML sans aucun soucis.
Je veux un menu contextuel sur la DGV afin d'ajouter, éditer et surtout supprimer une ligne et en particulier supprimer la ligne sur laquelle le click droit a été fait.
Le click droit sélectionne bien la ligne (entière) en question, mais lorsque je fais "supprimer" via le menu contextuel (ContextMenuStrip1), l'action supprime la ligne active (c'est ce que je veux ouf !) mais aussi la suivante et là je bloque complet !
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
Private rowIndex As Integer = 0
Sub Button1Click(sender As Object, e As EventArgs)
'récupération des données XML directement la DGV
Dim filePath As String = "I:\gsec92.xml"
CONSIGNEDataSet.ReadXml(filePath)
DataGridXML.DataSource = CONSIGNEDataSet
DataGridXML.DataMember = "CONSIGNEDATA"
End Sub
Private Sub DataGridXML_CellMouseUp_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridXML.CellMouseUp
'permet d'activer la ligne sous le curseur suite au click droit
'stockage de la position de la "row" dans la variable rowIndex
If e.Button = MouseButtons.Right Then
Me.DataGridXML.Rows(e.RowIndex).Selected = True
Me.rowIndex = e.RowIndex
Me.DataGridXML.CurrentCell = Me.DataGridXML.Rows(e.RowIndex).Cells(1)
Me.ContextMenuStrip1.Show(Me.DataGridXML, e.Location)
ContextMenuStrip1.Show(Cursor.Position)
End If
End Sub
Sub SupprimerToolStripMenuItemClick(sender As Object, e As EventArgs) Handles supprimerToolStripMenuItem.Click
If Not Me.DataGridXML.Rows(Me.rowIndex).IsNewRow Then
Me.DataGridXML.Rows.RemoveAt(Me.rowIndex)
End If
End Sub |
Peut-être qu'un œil extérieur saura me dire où est le soucis car la j'en suis à plusieurs de recherche, de bidouille en vain.
Merci d'avance pour votre aide !