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

Вступление

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

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

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

Скрытие пунктов контекстного меню

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

Меню GridDeskop по умолчанию

дело:изображение_альтернативный_текст

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

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

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

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

дело:изображение_альтернативный_текст

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

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

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

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

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

дело:изображение_альтернативный_текст