本文介绍了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#添加动态按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-25 18:20