Ticket T300164
Visible to All Users

Different behavior of WorkspaceManager in mdi form and DocumentManager mdi form

created 9 years ago

Hello DevExpress

I have the following problem: In an application we use the same dialog to display two different kinds of entities. Everything works fine except the workspace manager. If I open one forme with entity a it works but if I open the same form with entity b (form one is still open) the workspacemanager crashes: An item with the same key has already been added.

If I don't use a documentmanager (simple mdi form) it works as expected.

Please review the attached sample. With documentmanager1 you can't open the same form multiple times. If you remove the documentmanager1 component you can open as much forms as you like.

Is this behavior intended or is it a bug?

Thank you for your help!
Mike

Answers approved by DevExpress Support

created 9 years ago

Hi Mike,
Thank you for the provided sample project. I researched it and found that TabbedView layout is saved and restored when the SaveWorkspace  method is called. Since TabbedView contains several documents with the same ControlName, an exception is thrown when the layout is restored. To overcome this issue, set the unique form names:

C#
private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e) { XtraForm1 form1 = new XtraForm1(_Counter); form1.MdiParent = this; form1.Name = "Form" + _Counter; form1.Show(); _Counter += 1; }

Attached is the modified sample.

    Comments (2)
    MH MH
    Michael_Hachen 9 years ago

      Hi Sasha
      Thank you for your answer.
      Well, it's a workaround but not a solution… If you open just one window, make some changes to the grid (width etc.) and close the form / application and then rerun the application the new layout is applied to the form. But if you open a second form the default layout is applied. I need a solution where the last saved layout is applied to each form I open (of course only if the form is of type XtraForm1).
      Thanks, Mike

      Andrew Ser (DevExpress Support) 9 years ago

        Hello,
        The problem seems to be caused by that fact that WorkspaceManager saves and restores the layout of TabbedView while the manager's TargetControl is a child form. From what I gather, you don't need to save the layout for the parent form.
        In any case, I've passed this issue to our R&D team for further research - WorkspaceManager - The Layout of a parent form is saved when the DocumentManager is used. We will update that ticket once we make any progress.

        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.