static private void OnMenuOpening(object sender, CancelEventArgs e) { ContextMenuStrip menu = sender as ContextMenuStrip; MenuContext menuContext = menu.Tag as MenuContext; List <MySQL.Base.MenuItem> itemsBE = null; menuContext.nodes = null; menuContext.rows = null; menuContext.column = -1; if (null != menuContext.GetSelectedNodes) { menuContext.nodes = menuContext.GetSelectedNodes(); if (null == menuContext.nodes) { menuContext.nodes = new List <NodeIdWrapper>(); } itemsBE = menuContext.GetNodesMenuItems(menuContext.nodes); } else if (null != menuContext.GetSelectedRowsCol) { menuContext.rows = menuContext.GetSelectedRowsCol(ref menuContext.column); if (null == menuContext.rows) { menuContext.rows = new List <int>(); } itemsBE = menuContext.GetRowsColMenuItems(menuContext.rows, menuContext.column); } menu.Items.Clear(); if (null == itemsBE) { e.Cancel = true; } else { FillMenuItems(itemsBE, menu.Items); e.Cancel = false; } }