不是通过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];
}
}
并添加一个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];
}
}
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来计算索引
并添加一个ArrayList picList = new ArrayList()存放这些PictureBox
---------------------------------------------------------------------
但是,picList还是只存在于FormMain_Load()中,ProcessIniBMap中还是不能直接引用啊。
{
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;
}
.........
可以去掉 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加图片
}
PictureBox类哪有ID属性啊?
没有ID怎么谈通过ID查找?
PicBoxFace[i,j].ID = "PicBoxFace"+i+"X"+j;这一句能编译的过?
PicBoxFace[i,j].ID = "PicBoxFace"+i+"X"+j;这一句能编译的过?
----------------------------------------------
不行的,我本来以为也像ASP.NET中的findcontrol一样可以通过ID访问,这样看来是不行的。
noahart(八卦小子) ( )
---------------------------------------------
假如我想有个只对特定序号的几个PicBoxFace进行图片显示,这样的方法不是十分繁复?C#中就不提供通过ID访问实例的函数?