iterating through PictureBoxes in visual c++

与世无争的帅哥 提交于 2019-12-11 17:52:25

问题


I'm programming in visual c++, and I have about 60 pictures (indexed p0...p63). I want to make a loop that goes through all the pictures and change their ImageLocation under some conditions.

I figured the Tag property and one of my attempts was like this: I tagged my pictures from 0 to 63 and then tried the following:

for(int i=0; i<64; i++)
{
    PictureBox->Tag[i]->ImageLocation="possible-.gif";
}

It's not working... I get this error:

syntax error : missing ';' before '->'        line: 1514
syntax error : missing ';' before '->'        line: 1514

(twice, same line)

What's the right way of doing it?

Thank you!

edit:

OK now I have the pictures in an array. Is there a way to have a common rule for all of them? I want to make a click event for each and every one of the pictures. Is the only way setting a rule for each independently? Or can I set a rule for the array itself by saying something like:

if(Pictureboxes[i]_Clicked)
{
    Pictureboxes[i].something = "something else";
}

回答1:


I found the way to solve it. So I guess I'm gonna answer myself:

I made an array of PictureBoxes:

private: static array<System::Windows::Forms::PictureBox^>^ pictures=(gcnew array<System::Windows::Forms::PictureBox^>(64));

and filled it with the pictures:

pictures[0] = p0;
pictures[1] = p1;
pictures[2] = p2;
...

Then i clicked each of the pictures to create click_events. In each event i typed this:

int place = (/*pic number*/);
IndexOf(pictures);

This code sends to a function named IndexOf the picture i clicked. And here is IndexOf():

static System::Void IndexOf(int& place)
{
    int flag = 0;
    if(pictures[place]->ImageLocation == "possible-.bmp")
    {
        flag = 1;
        /*DO CODE*/
    }
    if(flag)
        /*OTHER CODE*/
}

Now i can do whatever code i want for pictures[i] at /do code/ above.



来源:https://stackoverflow.com/questions/20306465/iterating-through-pictureboxes-in-visual-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!