Gestionar Menús Contextuales de GridDesktop

Introducción

La clase ContextMenuManager se utiliza para gestionar los elementos del menú contextual. El atributo GridDesktop.ContextMenuManager obtiene la instancia del objeto ContextMenuManager. Por ejemplo, el atributo ContextMenuManager.MenuItemAvailable_Copy obtiene o establece un valor que indica si el elemento del menú contextual Copiar está disponible o no. De manera similar, tenemos todos los atributos correspondientes para diferentes elementos del menú contextual.

IMPORTANTE: Por defecto, todos los elementos del menú contextual son visibles en la lista.

Gestionando el Menú Contextual

Ocultar Elementos del Menú Contextual

Para realizar esta tarea, primero echamos un vistazo al menú contextual predeterminado que tiene GridDesktop.

Menú predeterminado de GridDesktop

todo:image_alt_text

Ahora, ocultar algunos elementos del menú utilizando el código a continuación:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Get the ContextMenuManager
ContextMenuManager cmm = this.grdDataEntry.ContextMenuManager;
// Hide the Copy option in the context menu
cmm.MenuItemAvailable_Copy = false;
// Hide the InsertRow option in the context menu
cmm.MenuItemAvailable_InsertRow = false;
// Hide the Format Cell dialog box
cmm.MenuItemAvailable_FormatCells = false;

Después de ejecutar el código anterior, algunos elementos del menú no serán visibles para los usuarios:

Algunos elementos del menú están ocultos

todo:image_alt_text

Añadiendo nuevos elementos de menú

Agregue un nuevo elemento al menú contextual a la lista utilizando el siguiente fragmento de código.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Get the active worksheet
Worksheet sheet = grdDataEntry.GetActiveWorksheet();
// Set the total columns diaplyed in the grid
sheet.ColumnsCount = 15;
// Set the total rows displayed in the grid
sheet.RowsCount = 15;
// Define a new menu item and specify its event handler
MenuItem mi = new MenuItem("newMenuItem", new System.EventHandler(miClicked));
// Set the label
mi.Text = "New Item";
// Add the menu item to the GridDesktop's context menu
grdDataEntry.ContextMenu.MenuItems.Add(mi);

También especificamos un controlador de eventos para el nuevo comando/opción.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Event Handler for the new menu item
private void miClicked(object sender, EventArgs e)
{
MenuItem mi = (MenuItem)sender;
MessageBox.Show("miCliked: " + mi.Text);
}

Después de ejecutar el código anterior, se podrá ver un nuevo elemento de menú en el menú contextual. También aparecerá un mensaje cuando se haga clic en la celda.

Se añade un nuevo elemento de menú a la lista

todo:image_alt_text