Group: Forum Members
Last Active: 9 Years Ago
Posts: 14,
Visits: 24
|
Like subject says I'm trying to remove some commands I don't use from the DiagramCommandBarsManager. I searched about it and found this: http://support.nevron.com/KB/a48/replace-override-the-commands-in-command-bars-manager.aspxI tried to remove the PDF Export... icon + command from the toolbar and from the "File" context menu but it didn't work, here is my code: NPdfExportCommand newD = (NPdfExportCommand)nDiagramCommandBarsManager1.Commander.Commands.GetCommandFromId((int)DiagramCommand.PdfExport); int index = nDiagramCommandBarsManager1.Commander.Commands.IndexOf(newD); nDiagramCommandBarsManager1.Commander.Commands.RemoveAt(index); nDiagramCommandBarsManager1.Refresh();
It disables the command so when I click the icon it doesn't show me anything... but I would like to remove the icon so it doesn't appear.
|
Group: Forum Members
Last Active: Yesterday @ 1:38 AM
Posts: 3,054,
Visits: 4,006
|
Hello Cristianf, To remove or change the icon in a command from NDiagramCommandBarsManager you will need to override CreateUICommand method in manager’s commander class (NDiagramCommander) Here is an example which you can use: public class MyNDiagramCommander : NDiagramCommander { public override object CreateUICommand(NDiagramCommand command) { NCommandContext context = new NCommandContext(); // range and id context.RangeID = command.RangeId; context.Properties.ID = command.Id; // text and tooltip context.Properties.Text = command.Text; context.TooltipText = command.TooltipText; // shortcut if (command.Shortcut != null) { context.Properties.Shortcut = command.Shortcut; } // image NCustomImageList imageList; int imageIndex; if (command.GetImageInfo(out imageList, out imageIndex)) { //Here we make a check for the command's type (in this case one that format text to be bold) so we can omit the drawing of the icon. //However, you can put any other logic here. if (command is NMakeBoldTextCommand) { } else { context.Properties.ImageInfo.Image = imageList.GetImage(imageIndex); } } return context; } }
Then you need to set an instance of the new commander to the command bars manager and call recreate method:
MyNDiagramCommander commander = new MyNDiagramCommander(); m_DiagramCommandBarManager.Commander = commander; m_DiagramCommandBarManager.Recreate();
Hope this helps.
Best Regards, Nevron Support Team
|