Bug Report T364625
Visible to All Users

BackstageView - Keytips are shown in front of a dialog form

created 9 years ago

If the RibbonStyle is set to Offic2010 there is a problem when a modal dialog is opened and the Alt-key is pressed. In this case, the key tips of the backstage view are shown and can be used, although the modal dialog is in front (NOK).
If you change the RibbonStyle to Office2013 or OfficeUniversal the key tips are not shown (OK).

To reproduce the behavior, I modified the DevExpress demo "RibbonSamplePad" in the following way:

  1. Add an empty form to the project (Form1).
  2. Change the implementation of bvItemSaveAs_ItemClick:
            private void bvItemSaveAs_ItemClick(object sender, BackstageViewItemEventArgs e) {
    +            Form1 frm1 = new Form1();
    +            frm1.ShowDialog(this);
  • frm1.Dispose();
    -             // SaveAs();
            }
  1. Compile and run the demo, the RibbonStyle is "OfficeUniversal".
  2. Select the backstage view and click "Save As" -> Form1 is opened.
  3. Press "Alt" -> no key tips are shown. (OK)
  4. Close the dialog and backstage view and change the RibbonStyle in the ribbon control to "Office2010".
  5. Select the backstage view and click "Save As" -> Form1 is opened.
  6. Press "Alt" -> the key tips are shown. (NOK)

The problem does not appear, when the open file dialog is shown (backstage view, command "Open").
How can we get the correct result that the key tips are not shown in case a modal dialog is opened?

Comments (3)
DevExpress Support Team 9 years ago

    We successfully reproduced the described behavior. So, I will forward this ticket to our developers team for further research. We will update this ticket when we obtain any results.

    KS KS
    Kerstin Sodermanns 9 years ago

      As the problem is urgent for us, we are first of all interested in a workaround. Changing the RibbonStyle is no option for us.

      DevExpress Support Team 9 years ago

        Hello,
        We understand the urgency of this issue. We are currently researching the possibility to provide a workaround for you. I will update this ticket once I obtain any additional news.

        Answers approved by DevExpress Support

        created 9 years ago

        We have fixed the issue described in this ticket and will include the fix in our next maintenance update. To apply this solution before the official update, request a hotfix by clicking the corresponding link for product versions you require.

        Note: Hotfixes may be unavailable for beta versions and updates that are about to be released.

          Show previous comments (2)
          DevExpress Support Team 9 years ago

            Hello, Kertstin,
            Thank you for your patience. In the current version, you can use the following BackstageViewControl descendant to avoid the issue:

            C#
            public class CustomBackstageViewControl : BackstageViewControl { protected override void ShowKeyTips() { if (this.RealParentForm != Form.ActiveForm) return; base.ShowKeyTips(); } protected internal Form RealParentForm { get { var bf = BindingFlags.NonPublic | BindingFlags.Instance; PropertyInfo pi = typeof (BackstageViewControl).GetProperty("ParentForm", bf); if (ParentBackstageView != null) return (Form)pi.GetValue(ParentBackstageView,null); if (Parent is Form) return Parent as Form; if (Ribbon != null) return Ribbon.Parent as Form; return null; } }

            I hope this helps.

            KS KS
            Kerstin Sodermanns 9 years ago

              Hello Nikita,
              thank you for the code snippet. It works as expected.

              DevExpress Support Team 9 years ago

                You are welcome. Let me know if you need any further assistance.

                Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

                Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.