Multiple Monitors and XPMenus
I''m having an issue with multiple monitors and using XPMenus.
I often go back and forth between using multiple monitors and using a single monitor. The problem occurs when I design a toolbar using multiple monitors and the toolbars are on the secondary screen. If I then switch to a single monitor the toolbars are, I assume, still located on the secondary monitor. The effect is that I can not see the toolbars again unless I hook up to a secondary monitor.
Is there anyway to move the floating toolbars back to the main screen when only one monitor is being used?
Thanks for your help.
SIGN IN To post a reply.
4 Replies
AD
Administrator
Syncfusion Team
March 18, 2005 07:59 PM UTC
Hi Jeff,
If you run the following code snippet, all your Bars will redock to the top of the your Form.
foreach (Syncfusion.Windows.Forms.Tools.XPMenus.Bar b in this.mainFrameBarManager1.Bars)
{
this.mainFrameBarManager1.GetBarControl(b).DockState = Syncfusion.Windows.Forms.Tools.CommandBarDockState.Top;
}
Additionally, this can be easily modified to place the Bars wherever you want.
Hope it helps.
Regards,
Gregory Austin
Syncfusion Inc.
JF
Jeff Fansler
March 22, 2005 06:03 PM UTC
Hi Gregory,
Your code would work well at run time. The problem I am having is at design time. Any ideas on how to solve that?
Thanks,
-Jeff
>Hi Jeff,
>
> If you run the following code snippet, all your Bars will redock to the top of the your Form.
>
>foreach (Syncfusion.Windows.Forms.Tools.XPMenus.Bar b in this.mainFrameBarManager1.Bars)
>{
> this.mainFrameBarManager1.GetBarControl(b).DockState = Syncfusion.Windows.Forms.Tools.CommandBarDockState.Top;
>}
>
>Additionally, this can be easily modified to place the Bars wherever you want.
>
>Hope it helps.
>
>Regards,
>Gregory Austin
>Syncfusion Inc.
AD
Administrator
Syncfusion Team
March 23, 2005 03:58 PM UTC
Hi Jeff,
I''ve looked into this and haven''t been able to find any built-in method to redock the Bars, since all that information is in the BarControl. Overall, my suggestion would be to avoid designing the Bars on a second monitor.
However, you can extend the MainFrameBarManager class to add that functionality, if you''re willing to trick VS .NET. You can wrap a method call in a designer attribute, and then modify that attribute to trigger the method. The following code snippet demonstrates this:
public class BarManagerExt : Syncfusion.Windows.Forms.Tools.XPMenus.MainFrameBarManager
{
public BarManagerExt() : base()
{
}
public BarManagerExt(System.ComponentModel.IContainer c, Form f) : base(c,f)
{
}
public BarManagerExt(Form f) : base(f)
{
}
[
CategoryAttribute("Functionality"),
DescriptionAttribute("Redocks the Bars then returns to False")
]
public bool NeedsRedock
{
get
{
return false;
}
set
{
if (value && this.DesignMode)
{
foreach (Syncfusion.Windows.Forms.Tools.XPMenus.Bar b in this.Bars)
{
this.GetBarControl(b).DockState = Syncfusion.Windows.Forms.Tools.CommandBarDockState.Top;
}
}
}
}
}
Regards,
Gregory Austin
Syncfusion Inc.
JF
Jeff Fansler
March 23, 2005 05:29 PM UTC
Thanks Gregory.
>Hi Jeff,
>
> I''ve looked into this and haven''t been able to find any built-in method to redock the Bars, since all that information is in the BarControl. Overall, my suggestion would be to avoid designing the Bars on a second monitor.
>
>However, you can extend the MainFrameBarManager class to add that functionality, if you''re willing to trick VS .NET. You can wrap a method call in a designer attribute, and then modify that attribute to trigger the method. The following code snippet demonstrates this:
>
>public class BarManagerExt : Syncfusion.Windows.Forms.Tools.XPMenus.MainFrameBarManager
> {
> public BarManagerExt() : base()
> {
> }
>
> public BarManagerExt(System.ComponentModel.IContainer c, Form f) : base(c,f)
> {
> }
>
> public BarManagerExt(Form f) : base(f)
> {
> }
>
> [
> CategoryAttribute("Functionality"),
> DescriptionAttribute("Redocks the Bars then returns to False")
> ]
> public bool NeedsRedock
> {
> get
> {
> return false;
> }
> set
> {
> if (value && this.DesignMode)
> {
> foreach (Syncfusion.Windows.Forms.Tools.XPMenus.Bar b in this.Bars)
> {
> this.GetBarControl(b).DockState = Syncfusion.Windows.Forms.Tools.CommandBarDockState.Top;
> }
> }
> }
> }
> }
>
>Regards,
>Gregory Austin
>Syncfusion Inc.
SIGN IN To post a reply.
- 4 Replies
- 2 Participants
-
JF Jeff Fansler
- Mar 18, 2005 07:20 PM UTC
- Mar 23, 2005 05:29 PM UTC