Bonjour,
J'ai un ensemble de procédure qui me permet d'ouvrir un menu (clic droit) uniquement sur les lignes de mon DGV grace à un "try" que j'ai trouvé dans une solution. Je suis pas un pro avec les "Try" et je voudrai réaliser quasi la même fonctionnalité sauf que cette fois je veux que le menu s'ouvre en dessous de l’entête de la colonne de mon DGV.
Voila mon code initial qui ouvre un menu sur une ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'Procédure qui ouvre un menu dans datagridview sur un Click droit. Private Sub AffichierMenu_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDown If e.Button = MouseButtons.Right Then ' Lorsqu'on fait un click *droit* 'un try ... catch pour eviter une exception au clic sur une entete Try DataGridView1.Rows(e.RowIndex).Selected = True OuvrirMenu(e.RowIndex) 'Ouvre un menu Catch ex As ArgumentOutOfRangeException End Try End If End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'Procedure qui permet d'ouvrir un menu Private Sub OuvrirMenu(ByVal e As Object) ' Create a new ContextMenuStrip control. Dim z As Integer ContextMenuStrip1 = New ContextMenuStrip() AddHandler ContextMenuStrip1.Opening, AddressOf cms_Opening For z = 0 To DataGridView1.RowCount - 1 If DataGridView1.Rows(z).Selected = True Then DataGridView1.Rows(z).ContextMenuStrip = ContextMenuStrip1 End If Next End SubMerci d'avance pour vos suggestions.
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 'Procedure qui contient ce qui ce trouve dans le menu Private Sub cms_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Dim c As Control = ContextMenuStrip1.SourceControl Dim tsi As ToolStripDropDownItem = ContextMenuStrip1.OwnerItem ContextMenuStrip1.Items.Clear() ContextMenuStrip1.Items.Add("Acknowledge Alarm") AddHandler ContextMenuStrip1.Items(0).Click, AddressOf cms_Click ContextMenuStrip1.Items.Add("Detail Display") AddHandler ContextMenuStrip1.Items(1).Click, AddressOf cms_Click ContextMenuStrip1.Items.Add("Associated Display") AddHandler ContextMenuStrip1.Items(2).Click, AddressOf cms_Click e.Cancel = False End Sub
Voila ce que je souhaite réaliser :
Partager