CODEKILLER

반응형

DevExpress SpreadSheet Context Menu 사용법
DevExpress SpreadSheet Context Menu 사용법

C# Winform DevExpress SpreadSheet Context Menu 

먼저 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
}
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band