먼저 SpreadSheet에서 Cell에서 우클릭을 할 때 컨텍스트 메뉴를 띄우기 위한 이벤트를 등록합니다.
spreadExcel.PopupMenuShowing += SpreadExcel_PopupMenuShowing;
컨텍스트메뉴에 메뉴 아이템들을 추가해 줍니다.
private void SpreadExcel_PopupMenuShowing(object sender, DevExpress.XtraSpreadsheet.PopupMenuShowingEventArgs e)
{
if (e.MenuType == SpreadsheetMenuType.Cell)
{
e.Menu.RemoveMenuItem(SpreadsheetCommandId.FormatClearContentsContextMenuItem);
e.Menu.DisableMenuItem(SpreadsheetCommandId.InsertHyperlinkContextMenuItem);
ISpreadsheetCommandFactoryService service = (ISpreadsheetCommandFactoryService)spreadExcel.GetService(typeof(ISpreadsheetCommandFactoryService));
SpreadsheetCommand cmd = service.CreateCommand(SpreadsheetCommandId.InsertPicture);
SpreadsheetMenuItemCommandWinAdapter menuItemCommandAdapter = new SpreadsheetMenuItemCommandWinAdapter(cmd);
SpreadsheetMenuItem menuItem = (SpreadsheetMenuItem)menuItemCommandAdapter.CreateMenuItem(DevExpress.Utils.Menu.DXMenuItemPriority.Normal);
menuItem.BeginGroup = true;
e.Menu.Items.Add(menuItem);
// 이 부분에 추가하고 싶은 컨텍스트 메뉴 아이템을 추가합니다.
SpreadsheetMenuItem startCellMenu = new SpreadsheetMenuItem("Start Cell", new EventHandler(StartCellClickHandler));
e.Menu.Items.Add(startCellMenu);
SpreadsheetMenuItem endCellMenu = new SpreadsheetMenuItem("End Cell", new EventHandler(EndCellClickHandler));
e.Menu.Items.Add(endCellMenu);
}
}
컨텍스트 메뉴 클릭 시의 이벤트핸들러를 만들어 줍니다.
public void StartCellClickHandler(object sender, EventArgs e)
{
// action
}
public void EndCellClickHandler(object sender, EventArgs e)
{
// action
}