private void grids_MouseDown(object sender, MouseEventArgs e) { contextMenuProcs.Items.Clear(); gridAll.ContextMenu = null; gridTP.ContextMenu = null; ODGrid grid = (ODGrid)sender; int row = grid.PointToRow(e.Y); if (row < 0 || row >= grid.Rows.Count) { return; } Procedure proc = (Procedure)grid.Rows[row].Tag; if (proc == null) { return; //should never happen } if (proc.AptNum > 0) { contextMenuProcs.Items.Add(menuItemGotToAppt); _apptNum = proc.AptNum; } if (proc.PlannedAptNum > 0) { contextMenuProcs.Items.Add(menuItemGoToPlanned); _apptNumPlanned = proc.PlannedAptNum; } if (contextMenuProcs.Items.Count != 0) { grid.ContextMenuStrip = contextMenuProcs; } }