本文介绍了C#添加动态按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Button[,] btn = new Button[Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text)];
for (int i = 0; i < Convert.ToInt32(textBox1.Text); i++)
{
for (int j = 0; j <= Convert.ToInt32(textBox2.Text); j++)
{
btn[i, j] = new Button();
this.Controls.Add(btn[i, j]);
if (i > 2)
{
btn[i, j].Left = 100 + btn[i-1, j-1].Left;
btn[i, j].Top = 100 + btn[i-1, j-1].Top;
}
else
{
btn[i, j].Left = 100;
btn[i, j].Top = 100;
}
}
}
它说索引超出范围.
我不知道为什么!
it says index out of Range.
I dont know why!
推荐答案
//for (int j = 0; j <= Convert.ToInt32(textBox2.Text); j++)
for (int j = 0; j < Convert.ToInt32(textBox2.Text); j++)
这也会导致错误:
And this causes error too:
if (i > 2)
{
btn[i, j].Left = 100 + btn[i-1, j-1].Left;
btn[i, j].Top = 100 + btn[i-1, j-1].Top;
}
改用这个:
Use this one instead:
//if (i > 2)
//{
// btn[i, j].Left = 100 + btn[i-1, j-1].Left;
// btn[i, j].Top = 100 + btn[i-1, j-1].Top;
//}
btn[i, j].Left = (i > 0)? 100 + btn[i - 1, j].Left : 100;
btn[i, j].Top = (j > 0)? 100 + btn[i, j - 1].Top : 100;
这篇关于C#添加动态按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!