Sin*_*atr 5 c# groupbox autosize winforms
拿一个GroupBox,放在Label里面说然后设置AutoSizeMode = GrowAndShrink和AutoSize = true.
会出现两个问题:
Label底部和底部之间存在巨大差距GroupBox(几乎足以适应另一个Labellol);AutoSize不尊重GroupBox.Text财产.问题是如何GroupBox.AutoSize正常工作?正确的意思是:最小宽度应该足够适合GroupBox.Text,不明原因下面应该没有间隙(它不是Margin,也不Padding是看起来很丑).
我已经尝试测量字符串长度OnPaint并在MinimumSize那里设置.它有效,但我对此有疑问,好像我想MinimumSize稍后实际设置- 它会在重绘后丢失.
更新,这里是截图:

小智 5
您可以通过从 GroupBox 派生一个新类来稍微调整底部边缘,从而消除底部不需要的黄色空间。在 VB 中,类似...
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
Run Code Online (Sandbox Code Playgroud)
很简单,您的位置Label固定在除 之外的某个点(0,0),请尝试以下操作:
label1.Location = Point.Empty;
Run Code Online (Sandbox Code Playgroud)
您可能还想尝试将Padding您的全部设置GroupBox为0(默认值为 3):
groupBox1.Padding = new Padding(0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5839 次 |
| 最近记录: |