如何通过按钮名称长度调整标签大小
How to resize the label size by button name length
我正在尝试动态创建按钮和标签,创建很好但调整标签大小是个问题,我想按按钮名称长度缩放标签大小但调整大小不起作用,我的代码和输出屏幕截图如下, 你能帮帮我吗?
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.Name = "btnAdi" + (i + 1).ToString();
btn.Text = (i + 1).ToString();
this.Controls.Add(btn);
btn.Location = new Point(0, btn.Height * i);
Label lbl = new Label()
{
TextAlign = ContentAlignment.MiddleLeft,
Dock = DockStyle.None,
BorderStyle = BorderStyle.FixedSingle,
};
lbl.Text = btn.Name.ToString();
lbl.Size = new Size( (btn.Name.Length), btn.Height);
this.Controls.Add(lbl);
lbl.Location = new Point(btn.Width, (btn.Height * i));
}
你只需要自动调整标签大小,像这样:
编辑:
在@Malior 评论之后,您可以使用自动调整大小删除 "lbl.Size" 行。
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.Name = "btnAdi" + (i + 1).ToString();
btn.Text = (i + 1).ToString();
this.Controls.Add(btn);
btn.Location = new Point(0, btn.Height * i);
Label lbl = new Label()
{
TextAlign = ContentAlignment.MiddleLeft,
Dock = DockStyle.None,
BorderStyle = BorderStyle.FixedSingle,
};
lbl.AutoSize = true;
lbl.Text = btn.Name.ToString();
this.Controls.Add(lbl);
lbl.Location = new Point(btn.Width, (btn.Height * i));
}
输出:
编辑2:
如果你想要 属性 "lbl.Size" 你需要这样的东西来获得 lbl.Text 的宽度:
Font arialBold = new Font("Arial", 10);
Size size = TextRenderer.MeasureText(lbl.Text, arialBold);
lbl.Size = new Size(size.Width, size.Height);
我注意到该方法比预期的多了 1 或 2 个空格。
输出2:
我正在尝试动态创建按钮和标签,创建很好但调整标签大小是个问题,我想按按钮名称长度缩放标签大小但调整大小不起作用,我的代码和输出屏幕截图如下, 你能帮帮我吗?
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.Name = "btnAdi" + (i + 1).ToString();
btn.Text = (i + 1).ToString();
this.Controls.Add(btn);
btn.Location = new Point(0, btn.Height * i);
Label lbl = new Label()
{
TextAlign = ContentAlignment.MiddleLeft,
Dock = DockStyle.None,
BorderStyle = BorderStyle.FixedSingle,
};
lbl.Text = btn.Name.ToString();
lbl.Size = new Size( (btn.Name.Length), btn.Height);
this.Controls.Add(lbl);
lbl.Location = new Point(btn.Width, (btn.Height * i));
}
你只需要自动调整标签大小,像这样:
编辑:
在@Malior 评论之后,您可以使用自动调整大小删除 "lbl.Size" 行。
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.Name = "btnAdi" + (i + 1).ToString();
btn.Text = (i + 1).ToString();
this.Controls.Add(btn);
btn.Location = new Point(0, btn.Height * i);
Label lbl = new Label()
{
TextAlign = ContentAlignment.MiddleLeft,
Dock = DockStyle.None,
BorderStyle = BorderStyle.FixedSingle,
};
lbl.AutoSize = true;
lbl.Text = btn.Name.ToString();
this.Controls.Add(lbl);
lbl.Location = new Point(btn.Width, (btn.Height * i));
}
输出:
编辑2:
如果你想要 属性 "lbl.Size" 你需要这样的东西来获得 lbl.Text 的宽度:
Font arialBold = new Font("Arial", 10);
Size size = TextRenderer.MeasureText(lbl.Text, arialBold);
lbl.Size = new Size(size.Width, size.Height);
我注意到该方法比预期的多了 1 或 2 个空格。
输出2: