Articles in this section
Category / Section

How to avoid the layoutmanagers leave blank space at the top of the WinForms FlowLayout control?

1 min read

Handle Resize event

By default, the layout managers layout controls within the client rectangle, but when scrollbars are turned on in the container control, you need to make the layout mangers layout within the DisplayRectangle of the container control, so you have to do this additional step:

C#

// Listen to the container control’s Resize event.
private void panel1_Resize(object sender, System.EventArgs e)
{
   // By default, the layout bounds are the container’s ClientRectangle,
   // but here we will use the display rectangle:
   this.flowLayout1.CustomLayoutBounds = this.panel1.DisplayRectangle;
}
// If your container control will dynamically add/remove child controls, then also listen to this event in the layout manager:
private void flowLayout1_ProvideLayoutInformation(object sender, Syncfusion.Windows.Forms.Tools.ProvideLayoutInformationEventArgs e)
{
   this.flowLayout1.CustomLayoutBounds = this.panel1.DisplayRectangle;
}

VB

' Listen to the container control’s Resize event.
Private Sub panel1_Resize(ByVal sender As Object, ByVal e As System.EventArgs)
   'By default, the layout bounds are the container’s ClientRectangle,
   ’ but here we will use the display rectangle:
   Me.flowLayout1.CustomLayoutBounds = Me.panel1.DisplayRectangle
End Sub
' If your container control will dynamically add/remove child controls, then also listen to this event in the layout manager:
Private Sub flowLayout1_ProvideLayoutInformation(ByVal sender As Object, ByVal e As Syncfusion.Windows.Forms.Tools.ProvideLayoutInformationEventArgs)
   Me.flowLayout1.CustomLayoutBounds = Me.panel1.DisplayRectangle
End Sub

The layout that happens after this Resize event will use the Display rectangle instead.

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