由于文本的长度,我的标签正在包装文本。仅当存在单行时,height属性才返回正确的值。我怎样才能得到正确的高度?
感谢。
的解决方案的: 我正在动态创建标签然后检查高度。之后,标签所在的面板被添加到一个表单中,更改了面板的字体,从而也改变了标签的字体和高度。
答案 0 :(得分:2)
获取标签首选尺寸的最简单方法是使用Label.GetPreferredSize(Size.Empty)
。如果您希望获得尺寸约束的尺寸,请使用非空尺寸的相同方法:Label.GetPreferredSize(constrainingSize)
答案 1 :(得分:1)
选项1:您可以使用Graphics.MeasureString或TextRenderer.MeasureText。第二个可能更容易为您的目的。
选项2:如果标签未正确生长以适合整个文本,请确保将AutoSize属性设置为True。
选项3:使用TextBox而不是Label。将ReadOnly属性设置为true,并更改背景颜色和边框以匹配Label。然后,设置MultiLine = True。这可能会给你带来同样的效果,但没有你看到的任何错误。
答案 2 :(得分:0)
解决方案:我正在动态创建标签并检查高度。之后,标签所在的面板被添加到一个表单中,更改了面板的字体,从而也改变了标签的字体和高度。