I have a UserControl
which consists of a Label
(Top), a FlowLayoutPanel
(Fill, TopDown flow and no wrap) and a Panel
(Bottom). The user control creates a number of controls, based on a list of stuff it gets, and adds them to the FlowLayoutPanel
.
How can I get this UserControl
to properly resize itself so that the FlowLayoutPanel
does not have any scroll bars? I have tried to use various combinations of AutoSize
and AutoSizeMode
on the FlowLayoutPanel
and the UserControl
itself, but I can't seem to get it working. Either I end up with something that doesn't resize itself at all, or it doesn't become big enough or it is squished down to almost nothing.
Thanks for all the suggestions. The solution this time seemed to set AutoSize
to true
for both the FlowLayoutPanel
and the UserControl
itself.
Now, how to get the form which will contain this UserControl
as well as some other controls, that I can't quite figure out at the moment, but I guess that should be a separate question...
You can use the Anchor- and Dock property of the UserControl to set options so that the edges of your control gets "glued" to some other parts of your UI. When the UI gets resized, your control will follow along!
If you use anchors and dock on all controls in your user control and set them to dock the edges of the control, the controls will resize with the UserControl and you can now set anchors/dock to the UserControl also.
Wrapping the FlowLayoutPanel
in a TableLayoutPanel
will allow for proper autosize behavoir.
Your UserControl
should look like this:
UserControl
TableLayoutPanel (Dock-Fill)
Row1 : Label
Row2 : FlowLayoutPanel (Panel:Dock-Fill AND AutoSize, Row:AutoSize)
Row3 : Panel
Again, when using that UserControl
, it is possible you will need to wrap it in a TableLayoutPanel
using an AutoSize
row or column.
Watch for SplitContainers
since they often throw autosize behaviors out of balance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With