在我的代码中,我创建了一个带有以下内容的标签:
Label namelabel = new Label();
namelabel.Location = new Point(13, 13);
namelabel.Text = name;
this.Controls.Add(namelabel);
在此之前定义了名为 name 的字符串,长度约为 50 个字符。但是,只有前 15 个显示在我表单的标签中。我尝试弄乱标签的MaximumSize,但无济于事。
在我的代码中,我创建了一个带有以下内容的标签:
Label namelabel = new Label();
namelabel.Location = new Point(13, 13);
namelabel.Text = name;
this.Controls.Add(namelabel);
在此之前定义了名为 name 的字符串,长度约为 50 个字符。但是,只有前 15 个显示在我表单的标签中。我尝试弄乱标签的MaximumSize,但无济于事。
尝试添加 AutoSize 属性:
namelabel.AutoSize = true;
当您使用设计编辑器在表单上放置标签时,此属性默认为 true,但如果您像以前那样在代码中创建标签,则默认值为 false。
尝试属性 AutoSize = true;
另一种方法是使用 Graphics 类的 MeasureString 方法
Graphics e = nameLabel.CreateGraphics();
SizeF stringSize = new SizeF();
stringSize = e.MeasureString(name, namelabel.Font);
nameLabel.Width = (int)stringSize.Width;
您可以使用该属性Label.AutoSize
自动调整标签的宽度,以正确适合存储在Label.Text
.
值得一提的是,使用设计编辑器创建标签时,此属性默认为true,但当您以编程方式自行创建标签时,该属性默认为false。
namelabel.AutoSize = true;
当然,您也可以使用以下内容手动设置标签的宽度来计算所需的宽度。
Graphics namelabel_g = namelabel.CreateGraphics ();
namelabel.Width = namelabel_g.MeasureString (
namelabel.Text, namelabel.Font
);
有关使用的文档Label.AutoSize
可以在msdn上找到:
有关的文档Graphics.MeasureString
可以在这里找到:
panel_saved.Controls.Add(
new Label
{
Location = new Point(1, 2),
Size = new System.Drawing.Size(43, 18),
BorderStyle = BorderStyle.FixedSingle,
Text = "yourdata"
});