Управление контекстным меню GridDesktop

Введение

Класс ContextMenuManager используется для управления пунктами контекстного меню. Атрибут GridDesktop.ContextMenuManager получает экземпляр объекта ContextMenuManager. Например, атрибут ContextMenuManager.MenuItemAvailable_Copy получает или устанавливает значение, указывающее, доступен ли пункт меню контекстного меню Копировать или нет. Аналогично у нас есть все соответствующие атрибуты для различных пунктов контекстного меню.

ВАЖНО: По умолчанию все элементы контекстного меню видны в списке.

Управление контекстным меню

Скрытие элементов контекстного меню

Для выполнения этой задачи мы сначала рассмотрим контекстное меню по умолчанию, которое есть у GridDesktop.

Команды меню по умолчанию GridDeskop

todo:image_alt_text

Теперь скроем некоторые пункты меню, используя следующий код:

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

После выполнения вышеуказанного кода некоторые пункты меню не будут видны для пользователей:

Некоторые пункты меню скрыты

todo:image_alt_text

Добавление новых пунктов меню

Добавьте новый пункт контекстного меню в список, используя следующий фрагмент кода.

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

Мы также указываем обработчик событий для новой команды/опции.

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

После выполнения вышеуказанного кода новый пункт меню можно увидеть в контекстном меню. Также появится сообщение при щелчке на ячейке.

Новый пункт меню добавлен в список

todo:image_alt_text