创建动态控件

Dav*_*d M 1 c# controls dynamic

        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]);
Run Code Online (Sandbox Code Playgroud)

它在verGroup [i] .Name中给了我一个IndexOutofRangeException.但索引是0,这肯定是它想要的?

我也试过了

 verGroup = new GroupBox[5]  
Run Code Online (Sandbox Code Playgroud)

但是会抛出"对象引用未设置为对象的实例"错误.

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

Dar*_*dro 5

由于amount从0开始,并且您创建了一个大小为i的数组,因此您将创建一个大小为0的数组.因此,您无法索引数组中的任何内容,因为它的长度为0.

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