Gestione del menu contestuale di GridDesktop

Introduzione

La classe ContextMenuManager è utilizzata per gestire gli elementi del menu contestuale. L’attributo GridDesktop.ContextMenuManager ottiene l’istanza dell’oggetto ContextMenuManager. Ad esempio, l’attributo ContextMenuManager.MenuItemAvailable_Copy ottiene o imposta un valore indicante se l’elemento di menu contestuale Copia è disponibile o meno. Allo stesso modo, abbiamo tutti gli attributi corrispondenti per diversi elementi del menu contestuale.

IMPORTANTE: Per impostazione predefinita, tutti gli elementi del menu contestuale sono visibili nell’elenco.

Gestione del menu contestuale

Nascondere gli elementi del menu contestuale

Per eseguire questa operazione, diamo prima un’occhiata al menu contestuale predefinito di GridDesktop.

Menu predefinito di GridDesktop

todo:image_alt_text

Ora, nascondi alcuni elementi di menu utilizzando il codice seguente:

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

Dopo aver eseguito il codice precedente, alcuni elementi di menu non saranno visibili per gli utenti:

Alcuni elementi di menu sono nascosti

todo:image_alt_text

Aggiunta di nuovi elementi di menu

Aggiungi una nuova voce al menu contestuale alla lista utilizzando il seguente frammento di codice.

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

Specifichiamo anche un gestore eventi per il nuovo comando/opzione.

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

Dopo aver eseguito il codice sopra, una nuova voce di menu può essere vista nel menu contestuale. Comparirà anche un messaggio quando si fa clic sulla cella.

Una nuova voce di menu è stata aggiunta alla lista

todo:image_alt_text