不是通过ID访问,而是通过索引访问在 FormMain_Load()中添加一个Panel控件,假设为Panel1
并添加一个ArrayList picList = new ArrayList()存放这些PictureBox
PicBoxFace[i,j] = new PictureBox();
this.Panel1.Controls.Add(PicBoxFace[i,j]);
this.picList.Add(PicBoxFace[i,j]);在 ProcessIniBMap()中
for(int i=0;i<99;i++)
{
  for(int j=0;j<99;j++)
  {
      PictureBox findPic = (PictureBox)this.picList[i*j];
      findPic.Image = ImageTarrain[0];
  }
}

解决方案 »

  1.   

    更正一下上面的错误
    int k=0;
    for(int i=0;i<99;i++)
    {
      for(int j=0;j<99;j++)
      {
          k++;
          PictureBox findPic = (PictureBox)this.picList[k];
          findPic.Image = ImageTarrain[0];
      }
    }
    不能用 i*j来计算索引
      

  2.   

    在 FormMain_Load()中添加一个Panel控件,假设为Panel1
    并添加一个ArrayList picList = new ArrayList()存放这些PictureBox
    ---------------------------------------------------------------------
    但是,picList还是只存在于FormMain_Load()中,ProcessIniBMap中还是不能直接引用啊。
      

  3.   

    private void FormMain_Load(object sender, System.EventArgs e)
    {
    PictureBox[,] PicBoxFace = new PictureBox[99,99];
    .....
    }
    -------------------------------------
    你的PicBoxFace 是FormMain_Load函数的局部变量,离开了FormMain_Load函数就不存在了其它函数当然不能访问了。try:PictureBox[,] PicBoxFace = new PictureBox[99,99];
    private void FormMain_Load(object sender, System.EventArgs e)
    {
    for(int i=0;i<intTileHNum;i++)
      for(int j=0;j<intTileVNum;j++)
        PicBoxFace[i,j] = new PictureBox();
        PicBoxFace[i,j].ID = "PicBoxFace"+i+"X"+j;
    }
    .........
      

  4.   

    谢谢楼上的,这样的方法能行,我已经试过拉,但是能通过ID访问吗?有类似中ASP.NET中的FindControl函数吗?
      

  5.   

    ID是什么啊?
    可以去掉 PicBoxFace[i,j].ID = "PicBoxFace"+i+"X"+j;这样访问:
    private void ProcessIniBMap()
    {
    IEnumerator keys=PicBoxFace.GetEnumerator();
    keys.MoveNext();
    while(keys.Current!=null)
    {
                    PictureBox pic=(PictureBox)keys.Current;
                    pic.Image=this.imageList1.Images[0];//图片
           keys.MoveNext();
             }
             //依次为picbox加图片
    }
      

  6.   

    WithSmile2000 (其实我是一个马甲) :
    PictureBox类哪有ID属性啊?
    没有ID怎么谈通过ID查找?
    PicBoxFace[i,j].ID = "PicBoxFace"+i+"X"+j;这一句能编译的过?
      

  7.   

    kissmett(雨岸一帆) ( )
    PicBoxFace[i,j].ID = "PicBoxFace"+i+"X"+j;这一句能编译的过?
    ----------------------------------------------
    不行的,我本来以为也像ASP.NET中的findcontrol一样可以通过ID访问,这样看来是不行的。
    noahart(八卦小子) ( ) 
    ---------------------------------------------
    假如我想有个只对特定序号的几个PicBoxFace进行图片显示,这样的方法不是十分繁复?C#中就不提供通过ID访问实例的函数?