I can't seem to get it where it deletes the row I right click and select delete. The following works only once I click the first cell of the row I want to remove and then right click. Would be nice if I didn't have to select but just happened.
Code:Dim contextMenuForColumn1 As ContextMenu = New ContextMenu() Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load 'Add all default values of controls contextMenuForColumn1.MenuItems.Add("Delete", AddressOf Me.DeleteRow) '... other menu items End Sub Sub DeleteRow() Dim dgvRow As DataGridViewRow = dgvItems.CurrentCell.OwningRow dgvItems.Rows.Remove(dgvRow) End Sub Private Sub dgvItems_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles dgvItems.MouseDown Dim hitTestInfo As DataGridView.HitTestInfo If e.Button = Windows.Forms.MouseButtons.Right Then hitTestInfo = dgvItems.HitTest(e.X, e.Y) If hitTestInfo.Type = DataGridViewHitTestType.Cell Then If Not dgvItems.Rows(hitTestInfo.RowIndex).Selected Then dgvItems.ClearSelection() 'dgvItems.Rows(hitTestInfo.RowIndex).Selected = True dgvItems.Rows(hitTestInfo.RowIndex).Cells(hitTestInfo.ColumnIndex).Selected = True End If End If End If End Sub Private Sub dgvItems_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles dgvItems.MouseUp Dim hitTestInfo As DataGridView.HitTestInfo If e.Button = Windows.Forms.MouseButtons.Right Then hitTestInfo = dgvItems.HitTest(e.X, e.Y) 'If column = first column If hitTestInfo.Type = DataGridViewHitTestType.Cell Or hitTestInfo.ColumnIndex = 0 Then contextMenuForColumn1.Show(dgvItems, New Point(e.X, e.Y)) End If End If End Sub




Reply With Quote