C# 创建动态控件

C# 创建动态控件,c#,dynamic,controls,C#,Dynamic,Controls,它在verGroup[i].Name处给我一个IndexOutofRangeException。但指数是0,这肯定是它想要的 我也试过了 int i = amount; //amount will always start at 0 int j = i + 1; GroupBox[] verGroup; verGroup = new GroupBox[i]; verGroup[i].Name = "verGrou

它在verGroup[i].Name处给我一个IndexOutofRangeException。但指数是0,这肯定是它想要的

我也试过了

        int i = amount; //amount will always start at 0
        int j = i + 1;

        GroupBox[] verGroup;
        verGroup = new GroupBox[i];

        verGroup[i].Name = "verGroup" + i.ToString();
        verGroup[i].Width = 400;
        verGroup[i].Height = 120;
        verGroup[i].Left = 5;
        verGroup[i].Top = 5 + (verGroup[i].Height * i) + (10 * i);
        verGroup[i].Text = "Verification #" + j.ToString();

        pnlVer.Controls.Add(verGroup[i]);
但这会引发“对象引用未设置为对象实例”错误


如果有人能给我指出正确的方向,我将不胜感激

因为数量从0开始,并且您创建了一个大小为i的数组,所以您正在创建一个大小为0的数组。因此,无法对数组中的任何内容编制索引,因为它的长度为0


第二个错误是因为您没有初始化组框。您需要说verGroup[i]=newgroupbox();初始化它

因为数量从0开始,并且您创建了一个大小为i的数组,所以您正在创建一个大小为0的数组。因此,无法对数组中的任何内容编制索引,因为它的长度为0


第二个错误是因为您没有初始化组框。您需要说verGroup[i]=newgroupbox();初始化它

首先,您要在此处分配一个
GroupBox
数组:

 verGroup = new GroupBox[5]  
但是,这不会在数组中分配GroupBox值。这需要单独处理:

GroupBox[] verGroup;
verGroup = new GroupBox[i];

首先,在这里分配一个
GroupBox
数组:

 verGroup = new GroupBox[5]  
但是,这不会在数组中分配GroupBox值。这需要单独处理:

GroupBox[] verGroup;
verGroup = new GroupBox[i];

您的代码非常糟糕,只需创建一次数组。然后需要实例化数组中的每个项

GroupBox[] verGroup;
verGroup = new GroupBox[i+1];
for(int gb = 0; gb < verGroup.Length; ++gb)
   verGroup[gb] = new GroupBox(); // This creates the individual group box elements
verGroup[]=新分组框[金额];
对于(int i=0;i
您的代码非常糟糕,只需创建一次数组。然后需要实例化数组中的每个项

GroupBox[] verGroup;
verGroup = new GroupBox[i+1];
for(int gb = 0; gb < verGroup.Length; ++gb)
   verGroup[gb] = new GroupBox(); // This creates the individual group box elements
verGroup[]=新分组框[金额];
对于(int i=0;i
您必须有一个很好的理由来解释为什么要创建数组


您必须有一个很好的理由来解释为什么要创建数组

您正在创建数组,但从未在ittry中创建任何对象添加verGroup[i]=new GroupBox();在第一次分配之前,您正在创建数组,但从未在ittry中创建任何对象,添加verGroup[i]=new GroupBox();在你第一次任务之前谢谢,这让我明白了。我知道这些都是愚蠢的错误,只是不知道是什么。谢谢,这帮我澄清了。我知道这些都是愚蠢的错误,只是不知道是什么。