Gestion du menu contextuel de GridDesktop

Introduction

La classe ContextMenuManager est utilisée pour gérer les éléments du menu contextuel. L’attribut GridDesktop.ContextMenuManager obtient l’instance de l’objet ContextMenuManager. Par exemple, l’attribut ContextMenuManager.MenuItemAvailable_Copy obtient ou définit une valeur indiquant si l’élément du menu contextuel Copier est disponible ou non. De même, nous avons tous les attributs correspondants pour différents éléments de menu contextuel.

IMPORTANT : Par défaut, tous les éléments du menu contextuel sont visibles dans la liste.

Gestion du menu contextuel

Masquer des éléments du menu contextuel

Pour effectuer cette tâche, commençons par examiner le menu contextuel par défaut de GridDesktop.

Le menu par défaut de GridDesktop

todo:image_alt_text

Maintenant, masquez certains éléments du menu à l’aide du code ci-dessous :

// 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;

Après l’exécution du code ci-dessus, certains éléments du menu ne seront pas visibles pour les utilisateurs :

Certains éléments de menu sont masqués

todo:image_alt_text

Ajout de nouveaux éléments de menu

Ajoutez un nouvel élément de menu contextuel à la liste à l’aide du code suivant.

// 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);

Nous spécifions également un gestionnaire d’événements pour la nouvelle commande/option.

// 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);
}

Après avoir exécuté le code ci-dessus, un nouvel élément de menu peut être vu dans le menu contextuel. Un message apparaîtra également lorsque la cellule est cliquée.

Un nouvel élément de menu est ajouté à la liste

todo:image_alt_text