c#动态创建的标签大小不够宽

时间:2015-04-04 13:36:41

标签: c# text label panel

动态创建标签时,其中一部分文字丢失。这是因为标签的大小不够宽,它会削减实际字符串的一部分。

我如何让它完全停止?我不想也不记得为标签设置尺寸。它不应该只是继续直到字符串是空的吗?

示例:value ="狂战士的铁斧",它只显示" Berserker的铁",因为我没有任何尺寸设定它的一部分字符串。

    PictureBox finalResult_pBox = new PictureBox {
                                    Name = "finalResult_pBox" + i,
                                    Size = new Size(64, 64),
                                    Padding = new Padding(0),
                                    BorderStyle = BorderStyle.FixedSingle,

                                    ImageLocation = spidyApi_idByName_result.results[i].img.ToString(),
                                };
                              MessageBox.Show(spidyApi_idByName_result.results[i].name.ToString());

                                Label finalResult_itemName_label = new Label{
                                    Name = "finalResult_itemName_label" + i,
                                    Text = spidyApi_idByName_result.results[i].name,
                                };

                                FlowLayoutPanel finalResult_panel = new FlowLayoutPanel{
                                    FlowDirection = FlowDirection.TopDown,
                                    BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle,
                                    Name = "result_flowLayoutPanel" + i,
                                    Size = new System.Drawing.Size(790, 64),
                                    TabIndex = i,
                                };



finalResult_panel.Controls.Add(finalResult_pBox);
finalResult_panel.Controls.Add(finalResult_itemName_label);
result_flowLayoutPanel.Controls.Add(finalResult_panel);

为什么会发生这种情况?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

只要您保留Label.AutoSize = true,这是默认值,它应自动调整大小。

您可能需要进行一些测试以查看实际尺寸,例如

  • 设置BorderStyle
  • BackColor
  • 或在文字中插入一个空格,这样就有机会进入第二行..

  • 当然你可以测量文本(例如TextRenderer.MeasureText(text, Label.Font);但是对于文本来说肯定不需要显示..它对于更苛刻的布局很有用但是,控制。

首先要确保AutoSize为真,或者您衡量并设置Size的{​​{1}} ..