检查面板中选中了哪个复选框

check which checkbox is checked in panel

有人可以帮我解决以下问题吗? 当我按下按钮时,我需要检查面板中选中了哪个复选框。 默认情况下,所有复选框都被选中。我的想法是有一个向量,我存储选中的复选框的订单号。 面板中动态输入复选框的代码是:

for each (FileInfo^ f in info->GetFiles())
{
    for (int i = 0; i < validExtensions->Length; i++)
    {
        if (f->Extension->ToString()->ToLower() == validExtensions[i]->ToLower())
        {
            PictureBox^ pb = gcnew PictureBox();
            CheckBox^ cb = gcnew CheckBox();

            pb->Name = "ImagePB" + countPB;
            cb->Name = "CheckBox" + countCB;

            pb->Cursor = Cursors::Hand;

            pb->Parent = panel1;                            
            pb->Size = System::Drawing::Size(130, 130);
            cb->Parent = panel1;

            pb->SizeMode = PictureBoxSizeMode::StretchImage;

            pb->Location = Point(positionX + 10, positionY);
            cb->Location = Point(positionX + 70, positionY + 130);

            pb->Image = Image::FromFile(f->FullName);

            pb->Image->Tag = f->FullName;

            pb->Click += gcnew System::EventHandler(this, &Forma1::pb_Click);

            positionX += 141;
            if (positionX >= 770)
            {
                positionY += 154;
                positionX = 0;
            }

            countPB += 1;
            countCB += 1;

            cb->Checked = true;
        }
    }
}

还不太清楚所有内容的结构,所以这可能会被关闭,但是当您 create/delete 时,您可以维护所有复选框的动态列表。然后在需要时迭代它们。

List<CheckBox^>^ checkboxes = gcnew List<Checkbox^>();

...
checkboxes->Add(gcnew CheckBox());

...

for each (Checkbox^ checkbox in checkboxes)
{
    if (checbox->Checked)
        DoSomething();
}