Articles in this section
Category / Section

How to adjust docked control size when dock state changed in WinForms Docking Manger?

2 mins read

Docking Events

In DockingManager, the control size can be maintained by using below events.

 

ResizeBegin

This event occurs when resize begins and it helps to store size information.

 

ResizeEnd 

This event raises when Resize ends and it helps to update the control size and updated size information.

 

AutoHideAnimationStart

This event raises when AutoHide Animation starts, it helps to update the size for child controls. 

 

AutoHideAnimationStop

This event raises when AutoHide Animation ends, it helps to update with size information once AutoHide functionality is completed.

 

Following code examples demonstrates the same.

C#

// Maintain the panel sizes based on key parameters from beginning of move
private void frmExample_Resize(object sender, EventArgs e)
{
    SetPanelSizes();
}
 
// Get the key size parameters at beginning of resize (pnlB sets width for A/B/C)
private void frmExample_ResizeBegin(object sender, EventArgs e)
{
      origABCWidth = pnlB.Size.Width;
      origCHeight = pnlC.Size.Height;
      origEWidth = pnlE.Size.Width;
}
 
// Set the panel sizes based on key parameters from beginning of move
private void frmExample_ResizeEnd(object sender, EventArgs e)
{
      SetPanelSizes();
      UpdateSizeInfo();
}
 
// Resize the panel when it starts to be shown
private void dockMgrMain_AutoHideAnimationStart(object sender, AutoHideAnimationEventArgs arg)
{
       ResizePanelA();
}
 
// Update the label with the final panel size
private void dockMgrMain_AutoHideAnimationStop(object sender, AutoHideAnimationEventArgs arg)
        {
            UpdateSizeInfo();
        }

 

VB

'Maintain the panel sizes based on key parameters from beginning of move
Private Sub frmExample_Resize(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Resize
  SetPanelSizes()
End Sub
 
'Get the key size parameters at beginning of resize (pnlB sets width for A/B/C)
Private Sub frmExample_ResizeBegin(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.ResizeBegin
  origABCWidth = pnlB.Size.Width
  origCHeight = pnlC.Size.Height
  origEWidth = pnlE.Size.Width
End Sub
 
'Set the panel sizes based on key parameters from beginning of move
Private Sub frmExample_ResizeEnd(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.ResizeEnd
  SetPanelSizes()
  UpdateSizeInfo()
End Sub
 
'Resize the panel when it starts to be shown
Private Sub dockMgrMain_AutoHideAnimationStart(ByVal sender As Object, ByVal arg As AutoHideAnimationEventArgs) Handles dockMgrMain.AutoHideAnimationStart
  ResizePanelA()
End Sub
 
'Update the label with the final panel size
Private Sub dockMgrMain_AutoHideAnimationStop(ByVal sender As Object, ByVal arg As AutoHideAnimationEventArgs) Handles dockMgrMain.AutoHideAnimationStop
  UpdateSizeInfo()
End Sub

                             

Control at their original position in Docking Manager

Figure 1. Control at their original position in Docking Manager with image

 

Maintain control size in Docking Manager

Figure 2. Maintain controls size in Docking Manager with image

Samples:

C#: How to maintain the control size in Docking Manager C#

VB: How to maintain the control size in Docking Manager VB

 

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