In one of my projects, I am using an UltraWinToolbar set to display the Ribbon. This sits on a MDIParent and each MDI Child has a Ribbon that merges into the parent Ribbon. However, on the MDI children, I load controls that dynamically updates the Ribbon on the MDI Child that contains the control. Of course, I call the RefreshMerge() method to resynch the child and parent Ribbons. This works fine except that the Ribbon always jumps back to the zero index tab on the parent Ribbon. I want to keep the same Ribbon tab active after the RefreshMerge call as was active before the method was called.
Additonally, I have a tab in the parent and in the child with the same name, but they will not merge their groups/tools together. Instead, both tabs remain seperate.
This is with the Infragistics NetAdvantage 2008 V1.
The first issue sounds like a bug. The toolbars manager should maintain the selected tab if it is still present after a RefreshMerge() call. I would recommend reporting it to the support group: http://es.infragistics.com/gethelp. You can probably work around it for now by getting the SelectedTab of the Ribbon before calling RefreshMerge() and if it is still in the Tabs collection, setting it back on the Ribbon after the method call.
The second thing is correct behavior. The Office 2007 UI Guidelines state that the contents of each Ribbon tab cannot change, and merging two tabs into one would violate this rule. You can get around this by setting Office2007UICompatibility to False on both the mdi parent and child toolbars managers.
Resetting the SelectedTab after the Refresh seems to work. The Ribbon does blink between Tabs, but at least the end users won't have to click back to the previous Tab themselves. I'll report this issue to Support once I can get a sample together to reproduce the behavior.
Regarding my second question, I'd prefer to maintain compliance to the UI Guidelines, so I'll differentiate the tabs instead of merging their tools.
Thank you for your response.