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