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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci d'avance pour votre aide !
Partager