Take a GroupBox
, put let say Label
inside and then set AutoSizeMode = GrowAndShrink
and AutoSize = true
.
Two problems will arise:
Label
and bottom of GroupBox
(almost enough to fit another Label
lol);AutoSize
doesn't respect the GroupBox.Text
property.Question is how to make GroupBox.AutoSize
working properly? Properly means: minimum Width should be enough to fit GroupBox.Text
, there should be no gaps below for unknown reason (it's not Margin
, nor Padding
and it looks pretty ugly).
I've tried to measure string length in OnPaint
and setting MinimumSize
right there. It works, but I have doubts about this, as if I would want to actually set MinimumSize
later - it will be lost after repaint.
Update, here is screenshot:
You can get rid of the unwanted yellow space at the bottom by deriving a new class from GroupBox that adjusts the bottom edge a bit. In VB something like ...
Public Class BetterGroupBox
Inherits GroupBox
Public Overrides Function GetPreferredSize(ByVal proposedSize As Size) As Size
Dim ns = MyBase.GetPreferredSize(proposedSize)
Return New Size(ns.Width, ns.Height - 15)
End Function
End Class
It's simple that the location of your Label
is fixed at some point other than (0,0)
, try this:
label1.Location = Point.Empty;
You may also want to try setting the Padding
of your GroupBox
to 0
for all (default is 3):
groupBox1.Padding = new Padding(0);
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