I was working with some integration project where menus of the shell and a plugin are merged a-la MDI.
Both menus are ToolStrip
s. We used ToolStripManager.Merge()
to merge them. It turns out that MergeIndex
field of a source menu item is used as absolute position where this item will be inserted in the target menu. MergeIndex
es of the target menu items are ignored.
E.g. if your source is (merge indexes in brackets)
PluginMenu[2]
and your target is
File View Help
then merged menu will be
File View PluginMenu Help
.
If you later change the shell menu (target) to
File Edit View Window Help
then the merged menu will be
File Edit PluginMenu View Window Help
There is no way to specify something like “this plugin menu goes just before help” or “this plugin menu goes right after View”. Infragistics uses weights instead of absolute indexes. This creates much more sane and maintainable approach.