从数组创建标签

Chu*_*uck 0 c# arrays label winforms

我想基于数组创建标签,但我总是只获得一个标签.

private void button1_Click(object sender, EventArgs e)
{
    Debug.WriteLine(hardrive.GetHardDriveName.Count);
    Label[] lblHDDName = new Label[hardrive.GetHardDriveName.Count];

    for (int i = 0; i < hardrive.GetHardDriveName.Count; i++)
    {
        int x = 10;
        int y = 10;

        lblHDDName[i] = new Label();
        lblHDDName[i].Location = new System.Drawing.Point(x, y);
        lblHDDName[i].Text = "Test";
        groupBoxHDD.Controls.Add(lblHDDName[i]);

        y += 10;
    }
}
Run Code Online (Sandbox Code Playgroud)

调试

Debug.WriteLine(hardrive.GetHardDriveName.Count);
Run Code Online (Sandbox Code Playgroud)

显示数组中的两个项目.

问题是在GroupBox中只有一个标签而不是两个.

Nek*_*esh 5

您的y变量在for循环中定义,而不是在外部定义.因此,对于循环的每次执行,您将其初始化为10并在其中使用它System.Drawing.Point.如果要跟踪循环结束时所做的增量,则必须y在for循环之前声明并初始化.

int y = 10;
for (int i = 0; i < ...; i++)
{
   // use y
   ...

   // increment it
   y += 10;
}
Run Code Online (Sandbox Code Playgroud)