Home Forums WinForms controls Other WinForms controls Problems with SmartMenuBar

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • User (Old forums)
    Member
    Post count: 23064
    #17867 |

    On a normal MenuBar (System.Windows.Forms.MainMenu) the menuItems are on the same line as the icon, but with Xceed.SmartUI.Controls.MenuBar.SmartMenuBar the items is on a extra line below the normal line.

    This makes my GUI pretty ugly, because when I click on a menuItem (or a ToolBar.Tool), then the normal line first disappire, and then it become visible again.
    So my application “jumps”.

    (When I use System.Windows.Forms.MainMenu then my GUI still “jumps”, but not very much because the MenuItems is on the same line.)

    See:
    Xceed MenuBar: http://csharp.users.whitehat.dk/mdi2.jpg
    Normal MenuBar: http://csharp.users.whitehat.dk/mdi.jpg

    One solution could be to remove this “line” completly.

    Is this possible?

    Regards
    C#

    Imported from legacy forums. Posted by C# (had 7198 views)

    User (Old forums)
    Member
    Post count: 23064

    If anyone is interested, I can email my example (sourcecode.)

    Imported from legacy forums. Posted by C# (had 507 views)

    Xceed Support
    Member
    Post count: 5658

    Hello,

    The reason why the menu is not painted in the same area as the normal MenuBar is because we are not actually a menu (SmartMenuBar does not derive from the System.Windows.Forms.MainMenu) and we must be painted within the parent MDI’s child rectangle (which does not include that area).

    The normal menu is handled by the OS and the OS has the ability to paint the menu in this section of the child MDI.

    Unfortunately, to our knowledge, there is no way around this.

    Imported from legacy forums. Posted by Jenny [Xceed] (had 870 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi jenny

    I have found a work-around for this problem.

    This:

    Form1 form1 = new Form1();
    form1.MdiParent = this;
    form1.Menu = null;
    form1.ControlBox = false;
    form1.Text = “”;
    form1.Dock = DockStyle.Fill;
    form1.WindowState = FormWindowState.Normal;
    form1.Show();

    will remove the Title-bar on the Mdi-Client completly.

    Regards
    C#

    Imported from legacy forums. Posted by C# (had 430 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi,

    Indeed this will work. However, if you want to fake a maximized window, you will have to resize the child form accordingly to the parent form’s dimensions.

    Setting the child form’s .WindowState property to Maximized would make the ControlBox reappear along with the Title-Bar of the Mdi-Client.

    Cheers 😀

    Imported from legacy forums. Posted by PL (had 545 views)

    User (Old forums)
    Member
    Post count: 23064

    There must be a workaround for this problem. The Crownwood Consulting “Magic” library has a MenuControl class derived from ContainerControl, which works correctly in an MDI interface. As far as I can see, it simply finds the MdiClient child control, subclasses that window and prevents the WM_MDISETMENU and WM_MDIREFRESHMENU messages from being sent to it.

    In my opinion, the lack of MDI support is the biggest problem for the SmartUI components at the moment. I have been able to create a tabbed-MDI application with the SmartMenu, but it involves a lot more work than a standard MDI application.

    Imported from legacy forums. Posted by Richard (had 543 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi there,

    I’ve been trying to work around this exact problem for the past several days. Then today, I was going through your forum trying to see if there’s a solution to this problem and found this post. …it doesn’t look like there is a solution (or even a very suitable workaround).

    Honestly, I can’t believe that this was reported as a problem over a year ago, and it hasn’t been addressed in current releases! …or do I just not have the most current versions of the controls or something (v3.1)?

    I’ve absolutely fallen in love with your SmartUI controls!! I was introduced to them at my company, and was seriously considering in investing in my own personal license for them. But now that I see that there’s this (and other) limitations to the controls–and that Xceed doesn’t seem very interested in fixing them (at least, no interest in fixing this problem…which really is a BIG deal to some of us!) It’s making me reevaluate my decision to invest in a license for the controls. I want to know that the technology I purchase will do everything I need it to do, and if there’s a problem, I’ll get a prompt response–especially for the amount of money you charge for licensing your controls!

    I love your controls….just disappointed in the handling of this problem…
    Cmptr_Man

    Imported from legacy forums. Posted by cmptr_man (had 417 views)

    User (Old forums)
    Member
    Post count: 23064

    Since it doesn’t look like it’s posted anywhere online yet, I’ll post it here:

    THEY HAVE A FIX FOR THIS!

    You need to update to v3.1.121.0 of the SmartUI for .NET controls to get it. Then, in the SmartMenuBar, you’ll want to set the flag for HandleMDIControlButtons to TRUE. This will allow your child forms to maximize correctly when you’re using one of their MenuBars. (….AND, it even looks good! <grin>)

    Anyway, I figured that if I couldn’t find any information about this on their website, KB or this Forum…then probably no one else would be able to either. So, now it’s documented. <grin>

    Thanks Xceed…

    Imported from legacy forums. Posted by cmptr_man (had 537 views)

    User (Old forums)
    Member
    Post count: 23064

    This is very good news.
    Thanks

    Imported from legacy forums. Posted by C# (had 8544 views)

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.