代码如下:
public void creatbtn(int number)
{
string[] tmpnum = new string[number];//声明string类的对象矩阵
Button[] name = new Button[number];//声明button类的对象矩阵
Form3[] fo = new Form3[number];//声明form类的对象矩阵
try
{
for (int i = 0; i < number; i++)//批量声明和定义
{
tmpnum[i] = "button" + i.ToString();
name[i] = new Button();
name[i].Location = new Point(20, 100 + i * 30);//位置自己调整
name[i].Size = new Size(300, 30);//大小同样
this.Controls.Add(name[i]);//窗体上有一个panel1
name[i].Name = tmpnum[i];//给按钮重命名
fo[i] = new Form3();
name[i].Click += (object sender, EventArgs e) =>
{
fo[i].Show();
};
}
}
catch (Exception e1)
{
System.Windows.Forms.MessageBox.Show("The process failed: {0}", e1.ToString());
}
}
结果说:“索引超出了数组界限。”百思不解,如何是好?
for (int i = 0; i < number; i++)
这句没问题。
是啊,for循环完了按钮才加载玩的
不行啊,虽然button.name赋值为tmpnum[i],但是不能那样用。
追答你跟踪调试一下看是哪个位置的i超出范围
追问fo[i].Show();
说是这里越界了,怎么回事啊?
你这样
name[i].Click += (object sender, EventArgs e) =>
{
fo[i].Show();
};
是要等for循环结束了才按钮才加载完,当单击的时候,i 已经是最大的一个值。这问题的好好想下。
能再解释下吗?我似懂非懂啊。问题解决一定兑现承诺。
这些我知道,但是我的for循环貌似没有越界啊?请说具体些。
哪里越界了啊?请具体指出来,我新手看不出来。
...报错的问题,各位高手帮帮忙吧。满意再追加50分。
string[] tmpnum = new string[number];\/\/声明string类的对象矩阵 Button[] name = new Button[number];\/\/声明button类的对象矩阵 Form3[] fo = new Form3[number];\/\/声明form类的对象矩阵 try { for (int i = 0; i < number; i++)\/\/批量声明和定义 你定义的对象矩阵的长度都为numbe...
C# 中索引超出了数组界限怎么解决
2. 检查索引是否大于或等于数组长度。如果索引超出范围,可以采取以下措施:1. 抛出异常。在C#中,可以使用throw语句抛出异常,告知调用者索引超出范围。2. 调整索引。如果发现索引值过大,可以尝试减小它,使其在有效范围内。3. 使用循环控制。在遍历数组时,可以使用循环条件来防止索引超出范围。4. 使用...
C#中如何解决"索引超出了数组界限"这个异常
"索引超出了数组界限"并不是说索引有多长,而是说这个索引在数组的界限当中找不到,在楼主的代码中,无法保证String[] args 一定有值(即可能不存在args[0]),如果楼主是想在string[] args有值的情况下才输出第一个参数的话,可以改成 class Program { static void Main(string[] args){ string...
在c#中,显示索引超出了数组界限是什么回事啊
就是你要获取的数组元素的位置 超过了数组元素的个数。找不到这个位置下的元素,就报这样的错了
C#高手,请教一下关于"索引超出了数组界限"?
n+1,当n=49时,A[m,50]不就越界了么。改成if((i<>m || j<>n) && Array[i,j]+Array[m,n]==100)就行了
C#执行中出现“索引超出数组界限”的错误。应该如何修改?
索引是从0开始的,而length,与索引最大值的关系应该是 length-1 questionIndex = random.Next(QuizHelper.allQuestionIds.Length);你这句话,就把索引的值,赋成了长度值,超出了索引范围,所以报错了,改成length-1
用c#编程时,出现“索引超出了数组界限。”的问题。
你声明长度为30 ,但是x= j.ToString().ToCharArray() 长度变为x[5] ,x一直没有等于0, i3一直小于30, 造成x超出5了, 所以报错.
c#索引超出数组界限,是怎么回事?
分别为array1[0],array1[1],array1[2],array1[3],array1[4]。当你的程序当中,获取第六个元素即array1[5]的时候,系统就是报错:索引超出了数组。只要记着一点数组的索引下标是从0开始的。全部手写的,希望可以帮到楼主和正在学习C#,的朋友。我自己也在学习.NET当中,愿与君共勉。
C#索引超出了数组界限
static void Main(string[] args) {string str = "helloworld"; for (int i = str.Length; i!=0; i--) { Console.Write(str[i-1]); } Console.Read(); } }
C# 编程 提示索引超出了数组界限 应该怎么写?
此段代码 由于声明了一个args数组,但是args数组里面没有赋予任何值,所以根本不存在arg[0],arg[1]...这里 你只需要给args赋予初始值即可。如-- args=new string[1]{"奥特曼"};string strName;strName=args[0];