11

在我的代码中,我创建了一个带有以下内容的标签:

Label namelabel = new Label();
namelabel.Location = new Point(13, 13);
namelabel.Text = name;
this.Controls.Add(namelabel);

在此之前定义了名为 name 的字符串,长度约为 50 个字符。但是,只有前 15 个显示在我表单的标签中。我尝试弄乱标签的MaximumSize,但无济于事。

4

4 回答 4

9

尝试添加 AutoSize 属性:

namelabel.AutoSize = true;

当您使用设计编辑器在表单上放置标签时,此属性默认为 true,但如果您像以前那样在代码中创建标签,则默认值为 false。

于 2012-07-18T22:09:22.630 回答
3

尝试属性 AutoSize = true;

MSDN 参考

另一种方法是使用 Graphics 类的 MeasureString 方法

Graphics e =  nameLabel.CreateGraphics();
SizeF stringSize = new SizeF();
stringSize = e.MeasureString(name, namelabel.Font);
nameLabel.Width = (int)stringSize.Width;
于 2012-07-18T22:09:54.423 回答
1

您可以使用该属性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可以在这里找到:

于 2012-07-18T22:10:57.187 回答
0
panel_saved.Controls.Add(
    new Label 
    { 
        Location = new Point(1, 2), 
        Size = new System.Drawing.Size(43, 18), 
        BorderStyle = BorderStyle.FixedSingle, 
        Text = "yourdata" 
    });
于 2016-11-15T09:07:24.197 回答