Articles in this section
Category / Section

How to maximize the Float Window while double clicking the header in WinForms Docking Manager?

2 mins read

Maximize the float window on double-click caption

Use OnCaptionDoubleClick event of DockingManager to maximize the FloatWindow while double clicking on Caption Bar. Use EnableDoubleClickOnCaption property of DockingManager to enable or disable the state transistion when double click on Caption Bar. The following code example demonstrates the same.

C#

public partial class Form1 : MetroForm
{
  #region Constructor
  public Form1()
  {
    InitializeComponent();
    this.dockingManager1.EnableDoubleClickOnCaption = true;
    this.dockingManager1.DockControlDeactivated += new            DockActivationChangedEventHandler(dockingManager1_DockControlDeactivated);
    this.dockingManager1.DockControlActivated += new DockActivationChangedEventHandler(dockingManager1_DockControlActivated);
    dockingManager1.DockStateChanged += new DockStateChangeEventHandler(dockingManager1_DockStateChanged);
    this.dockingManager1.OnCaptionDoubleClick += new Syncfusion.Windows.Forms.Tools.DockMouseSelectionEventHandler(dockingManager1_OnCaptionDoubleClick);
  }
  #endregion
 
  #region Events
  //Triggers when control lost its focus.
  void dockingManager1_DockControlDeactivated(object sender, DockActivationChangedEventArgs arg)
  {
    if (dockingManager1.IsFloating(arg.Control))
      dockingManager1.EnableDoubleClickOnCaption = false;
  }
 
  //Triggers when the control got the Focus.
  void dockingManager1_DockControlActivated(object sender, DockActivationChangedEventArgs arg)
  {
    if (!(dockingManager1.IsFloating(arg.Control)))
      dockingManager1.EnableDoubleClickOnCaption = true;
    else
      dockingManager1.EnableDoubleClickOnCaption = false;
 
  }
 
  //Triggers when the dock state changed(Dock state or Floating state or tabbed docking)
  void dockingManager1_DockStateChanged(object sender, DockStateChangeEventArgs arg)
  {
    if (dockingManager1.IsFloating(arg.Controls[0]))
      dockingManager1.EnableDoubleClickOnCaption = false;
    else
      dockingManager1.EnableDoubleClickOnCaption = true;
  }
 
  //Event triggeres on double click on the caption bar.
  void dockingManager1_OnCaptionDoubleClick(object sender, Syncfusion.Windows.Forms.Tools.DockControlMouseSelection arg)
  {
    if (this.dockingManager1.IsFloating(arg.Control))
    {
      Control argctrl = arg.Control;
      if ((arg.Control.TopLevelControl as FloatingForm).WindowState != FormWindowState.Maximized)
        (arg.Control.TopLevelControl as FloatingForm).WindowState = FormWindowState.Maximized;
      else
        (arg.Control.TopLevelControl as FloatingForm).WindowState = FormWindowState.Normal;
    }
  }
  #endregion
}

 

VB

Partial Public Class Form1
   Inherits MetroForm
   #Region "Constructor"
   Public Sub New()
      InitializeComponent()
      Me.dockingManager1.EnableDoubleClickOnCaption = True
      AddHandler dockingManager1.DockControlDeactivated, AddressOf dockingManager1_DockControlDeactivated
      AddHandler dockingManager1.DockControlActivated, AddressOf dockingManager1_DockControlActivated
      AddHandler dockingManager1.DockStateChanged, AddressOf dockingManager1_DockStateChanged
      AddHandler dockingManager1.OnCaptionDoubleClick, AddressOf dockingManager1_OnCaptionDoubleClick
   End Sub
   #End Region
 
   #Region "Events"
   'Triggers when control lost its focus.
   Private Sub dockingManager1_DockControlDeactivated(ByVal sender As Object, ByVal arg As DockActivationChangedEventArgs)
      If dockingManager1.IsFloating(arg.Control) Then
        dockingManager1.EnableDoubleClickOnCaption = False
      End If
   End Sub
 
   'Triggers when the control got the Focus.
   Private Sub dockingManager1_DockControlActivated(ByVal sender As Object, ByVal arg As DockActivationChangedEventArgs)
      If Not(dockingManager1.IsFloating(arg.Control)) Then
        dockingManager1.EnableDoubleClickOnCaption = True
      Else
        dockingManager1.EnableDoubleClickOnCaption = False
      End If
   End Sub
 
   'Triggers when the dock state changed(Dock state or Floating state or tabbed docking)
   Private Sub dockingManager1_DockStateChanged(ByVal sender As Object, ByVal arg As DockStateChangeEventArgs)
      If dockingManager1.IsFloating(arg.Controls(0)) Then
    dockingManager1.EnableDoubleClickOnCaption = False
      Else
        dockingManager1.EnableDoubleClickOnCaption = True
      End If
   End Sub
 
   'Event triggeres on double click on the caption bar.
   Private Sub dockingManager1_OnCaptionDoubleClick(ByVal sender As Object, ByVal arg As Syncfusion.Windows.Forms.Tools.DockControlMouseSelection)
      If Me.dockingManager1.IsFloating(arg.Control) Then
        Dim argctrl As Control = arg.Control
        If (TryCast(arg.Control.TopLevelControl, FloatingForm)).WindowState <> FormWindowState.Maximized Then
          TryCast(arg.Control.TopLevelControl, FloatingForm).WindowState = FormWindowState.Maximized
    Else
          TryCast(arg.Control.TopLevelControl, FloatingForm).WindowState = FormWindowState.Normal
    End If
      End If
   End Sub
   #End Region
End Class

 

Sample Links:

C#: CaptionDoubleClick_Sample_C#

VB: CaptionDoubleClick_Sample_VB

UG document link: https://help.syncfusion.com/windowsforms/dockingmanager/floating-window#maximize-the-float-window-on-double-click-caption

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied