我正在用visual c ++编程,我有大约60张图片(索引为p0 ... p63)。我想创建一个遍历所有图片的循环,并在某些条件下更改ImageLocation
。
我想到Tag
属性,我的一次尝试是这样的:
我将我的照片标记为0到63,然后尝试以下操作:
for(int i=0; i<64; i++)
{
PictureBox->Tag[i]->ImageLocation="possible-.gif";
}
它没有用......我收到了这个错误:
syntax error : missing ';' before '->' line: 1514
syntax error : missing ';' before '->' line: 1514
(两次,同一行)
这样做的正确方法是什么?
谢谢!
编辑:
好的,现在我将图片放在一个数组中。有没有办法为所有人制定共同规则?我想为每张图片制作一个点击事件。是独立设置规则的唯一方法吗?或者我可以通过以下方式为数组本身设置规则:
if(Pictureboxes[i]_Clicked)
{
Pictureboxes[i].something = "something else";
}
答案 0 :(得分:1)
我找到了解决问题的方法。所以我想我会回答自己:
我制作了一个PictureBoxes数组:
private: static array<System::Windows::Forms::PictureBox^>^ pictures=(gcnew array<System::Windows::Forms::PictureBox^>(64));
并用图片填充:
pictures[0] = p0;
pictures[1] = p1;
pictures[2] = p2;
...
然后我点击了每张图片来创建click_events。 在每次活动中我输入了这个:
int place = (/*pic number*/);
IndexOf(pictures);
此代码向名为IndexOf的函数发送我单击的图片。 这是IndexOf():
static System::Void IndexOf(int& place)
{
int flag = 0;
if(pictures[place]->ImageLocation == "possible-.bmp")
{
flag = 1;
/*DO CODE*/
}
if(flag)
/*OTHER CODE*/
}
现在,我可以在/ 执行代码 /上面为照片[i]做任何我想要的代码。