void grilla_MouseDown(object sender, MouseEventArgs e) { // Evento ligado solo para Perfiles Superiores! if (e.Button == MouseButtons.Right) { Janus.Windows.GridEX.GridArea gridArea = _grillaActual.HitTest(e.X, e.Y); if (gridArea == Janus.Windows.GridEX.GridArea.ColumnHeader) { // Boton derecho sobre el column header de la grilla. // 1) Veo si existe un contextMenu ligado a la grilla. if (_grillaActual.ContextMenu == null) { ContextMenu menu = new ContextMenu(); _grillaActual.ContextMenu = menu; } // 2) Agrego, si NO EXISTE, una nueva opcion al menu: "ConfigurarColumna". if (!_grillaActual.ContextMenu.MenuItems.ContainsKey("ConfigurarColumna")) { MenuItem configurarColumna = new MenuItem(); configurarColumna.Name = "ConfigurarColumna"; configurarColumna.Click += new EventHandler(configurarColumna_Click); configurarColumna.Text = "Configurar Columna"; _grillaActual.ContextMenu.MenuItems.Add(configurarColumna); } } else { // Botón derecho sobre la grilla pero FUERA del area Column Header. // Elimino, en caso que exista el menu contextual, la opcion "Guardar Configuracion" (si existe). if ((_grillaActual.ContextMenu != null) && (_grillaActual.ContextMenu.MenuItems.ContainsKey("ConfigurarColumna"))) { // Existe el menu y la opcion ==> elimino la opcion. _grillaActual.ContextMenu.MenuItems.RemoveByKey("ConfigurarColumna"); } // Nota: si el menu queda sin opciones ==> no será visible! OK. } } }