日期:2014-05-18  浏览次数:20423 次

有关控件数组的问题!
Random rn = new Random();
  Label[,] a=new Label[2,2];
  for (int i = 0; i < 2; i++)
  {
  for (int j = 0,k=0; j < 2; j++,k++)
  {
  //a[i, j] = "Label" + k.ToString();
  a[i, j].Text = rn.Next(1,20).ToString ();
  }

注释的那条语句怎么改能成功呢。我不想一个一个的给a[0,0]到a[1,1]赋值Label1到Label4,如果控件数组下标太大,那得赋值到什么时候,有什么好的办法吗?

------解决方案--------------------
for (int i = 0; i < 2; i++)
{
for (int j = 0,k=0; j < 2; j++,k++)
{
a[i, j] = new Label();
a[i, j].Name = "Label" + k.ToString();
a[i, j].Text = rn.Next(1,20).ToString ();
}
------解决方案--------------------
我上机做了一下, 调试通过, 你这样改吧:

这一句
//a[i, j] = "Label" + k.ToString(); 

改为

C# code

  Label lbl = new Label();
  lbl.ID = "Label" + k.ToString();
  a[i, j] = lbl;

------解决方案--------------------
skyaspnet的方法可以,lz试一下
------解决方案--------------------
C# code
 
for (int i = 0; i  < 2; i++)
{
      for (int j = 0,k=0; j  < 2; j++,k++)
      {
        Label lbl = new Label();
        a[i, j].Name = "Label" + k.ToString();
        a[i, j].Text  = rn.Next(1,20).ToString ();
        this.Form1.Controls.Add(lbl);
      }
}