【发布时间】:2016-12-14 21:48:54
【问题描述】:
我正在尝试根据其内容宽度设置标签(“label1”)的宽度。但是每次我用String.Length-Method获取字符串的长度时,宽度似乎太小了,我的字符串不适合标签。
string anystring = "ThisIsMyString";
int i = anystring.Length;
label1.Text = anystring;
label1.Width = i + 10; //I add +10 to have some buffer
String.Length 和 Label.Width 有不同的度量单位的问题吗?有没有其他方法可以处理这个问题? (我知道我可以简单地将设置标签宽度的部分省略,但出于好奇,我想知道如何做到这一点)
【问题讨论】:
-
字符串的长度是字符数,其中控件的宽度是它的像素大小(默认情况下)。但是,您可以将字符数乘以恒定的像素数。
-
string.Length只是字符数......它与宽度无关 - 要了解某些 UI 元素的宽度,您需要很多上下文 - 包括字体、字体大小等。你可能想要Graphics.MeasureString? -
将
Label.AutoSize属性设置为true。 -
我明白你的意思。我会尝试 Graphics.MeasureString 和 Label.AutoSize 谢谢
-
@AlexanderPetrov 与 AutoSize 属性它工作正常。但是我想通过在代码中自己设置标签的宽度来解决这个问题。
标签: c# winforms visual-studio