我知道可以在Label中进行行间距。有人可以帮我做这个吗? 我需要一个双倍间距或1.5间距的标签。
我找到了这段代码,但它无效:
private void label1_Paint(object sender, PaintEventArgs e)
{
string text = "Sri Lanka";
Graphics g = e.Graphics;
Font font = new Font("Arial", 10);
Brush brush = new SolidBrush(Color.Black);
float lineSpacing = 0.5f;
SizeF size = g.MeasureString("A", font);
float pos = 0.0f;
for (int i = 0; i < text.Length; ++i)
{
string charToDraw = new string(text, 1);
g.DrawString(charToDraw, font, brush, pos, 0.0f);
SizeF sizeChar = g.MeasureString(charToDraw, font);
pos += sizeChar.Width + size.Width * lineSpacing;
}
}
它给出了错误:'string.string(char,int)'的最佳重载匹配在此代码上有一些无效的参数“ string charToDraw = new string(text, 1); ”
答案 0 :(得分:0)
那是因为你传递一个字符串作为第一个参数,并且没有重载的字符串构造函数将字符串作为第一个参数。
如果您尝试逐个字符地访问字符串,请尝试:
for (int i = 0; i < text.Length; ++i)
{
char charToDraw = text[i];
但是如果你试图逐个字符地传递给DrawString(),你将需要单个字符串的字符串版本,所以这样做会更容易:
for (int i = 0; i < text.Length; ++i)
{
string charToDraw = text.SubString(i, 1);