我正在开发一个 Windows 应用程序,我想在其中在循环内动态创建一些控件。
我正在尝试的代码是

private Label newLabel = new Label();
private int txtBoxStartPosition = 100;
private int txtBoxStartPositionV = 25;

 for (int i = 0; i < 7; i++)
{

    newLabel.Location = new System.Drawing.Point(txtBoxStartPosition, txtBoxStartPositionV);
    newLabel.Size = new System.Drawing.Size(70, 40);
    newLabel.Text = i.ToString();

    panel1.Controls.Add(newLabel);
    txtBoxStartPositionV += 30;


}

这段代码只生成一个带有文本 7 的标签,但我想用它们各自的文本创建 8 个标签,我该怎么做?

最佳答案

在您的循环中,您实际上是在更新同一个标签的属性。如果你想在每一步都创建一个新的,在循环内移动对象的创建:

private Label newLabel;

for (int i = 0; i < 7; i++)
{
    newLabel = new Label();
    ...

顺便说一句,如果你想要 8 个 标签 - 你的 for 应该迭代 8 次,而不是 7 次,就像现在一样:
for (int i = 0; i < 8; i++)

关于c# - 在 C# 中动态添加循环下的控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16914397/

10-12 04:28