检查面板中选中的复选框

时间:2015-05-25 08:14:31

标签: .net visual-c++ checkbox c++-cli panel

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

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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

目前还不是很清楚一切是如何构建的,因此可能会关闭,但您可以在创建/删除它们时维护所有复选框的动态列表。然后在需要时迭代它们。

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

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

...

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