Winforms 无法在带有C+;的Windows窗体中的面板中添加按钮+/CLI

Winforms 无法在带有C+;的Windows窗体中的面板中添加按钮+/CLI,winforms,c++-cli,Winforms,C++ Cli,我尝试在windows窗体中以编程方式在面板组件中添加按钮,但失败了 我想创建按钮只是在相同的地方,其他按钮已经作出。 首先,我制作了一个包含按钮对象的向量 然后,创建新的按钮对象并添加到作为按钮父级的面板中。 这就是为什么我用这个: 按钮控制列表。在(i)->控件->所有者->控件->添加(新按钮) 但这不起作用。 要获取button父级的控件对象,我应该怎么做 private: void createButtonDelegate() { cliext:

我尝试在windows窗体中以编程方式在面板组件中添加按钮,但失败了

我想创建按钮只是在相同的地方,其他按钮已经作出。 首先,我制作了一个包含按钮对象的向量

然后,创建新的按钮对象并添加到作为按钮父级的面板中。 这就是为什么我用这个:

按钮控制列表。在(i)->控件->所有者->控件->添加(新按钮)

但这不起作用。 要获取button父级的控件对象,我应该怎么做

private: void createButtonDelegate()
        {
            cliext::vector<Button^> button_contol_list;
            button_contol_list.push_back(btn_Connect);
            button_contol_list.push_back(btn_Calibration);
            button_contol_list.push_back(btn_Frame_Init);
            button_contol_list.push_back(btn_Save_Marker_Position);
            button_contol_list.push_back(btn_Save_Gripper_Angle);
            button_contol_list.push_back(btn_Gripper_Close);
            button_contol_list.push_back(btn_Gripper_Open);
            button_contol_list.push_back(btn_Test_ETC);
            button_contol_list.push_back(btn_Retrieving);
            button_contol_list.push_back(btn_Storing);
            button_contol_list.push_back(btn_Marker_Detection);
            button_contol_list.push_back(btn_Marker_Repeat_Test);
            button_contol_list.push_back(btn_Robot_Connect);
            button_contol_list.push_back(btn_Cam_Connect);
            button_contol_list.push_back(btn_Cam_Calib);
            button_contol_list.push_back(btn_EIH_Calib);


            for (int i = 0; i < button_contol_list.size(); i++) {

                Button^ newButton = gcnew Button();
                newButton->Name = "btn_tmp_" + i.ToString();
                newButton->Text = "Created Button_" + i.ToString();
                newButton->Location = button_contol_list.at(i)->Location;
                
                newButton->Size = System::Drawing::Size(50, 50);

                newButton->BringToFront();
                newButton->Click += gcnew System::EventHandler(this, &Form1::btn_Initialisation_Click);

                button_contol_list.at(i)->Controls->Owner->Controls->Add(newButton);

            }
}
private:void createButtonDelegate()
{
cliext::矢量按钮控制列表;
按钮控制列表。向后推(btn连接);
按钮控制列表。向后推(btn校准);
按钮控制列表。向后推(btn帧初始化);
按钮控制列表。向后推(btn保存标记位置);
按钮控制列表。向后推(btn保存夹钳角度);
按钮控制列表。向后推(btn夹持器关闭);
按钮控制列表。向后推(btn夹具打开);
按钮控制列表。向后推(btn测试等);
按钮控制列表。推回(btn检索);
按钮控制列表。向后推(btn存储);
按钮控制列表。向后推(btn标记检测);
按钮控制列表。向后推(btn标记器重复测试);
按钮控制列表。向后推(btn机器人连接);
按钮控制列表。向后推(btn\U Cam\U连接);
按钮控制列表。向后推(btn\u凸轮校准);
按钮控制列表。向后推(btn-EIH-Calib);
对于(int i=0;iName=“btn_tmp_”+i.ToString();
新建按钮->Text=“已创建按钮”+i.ToString();
新按钮->位置=按钮控制列表。位于(i)->位置;
新按钮->尺寸=系统::图纸::尺寸(50,50);
newButton->BringToFront();
newButton->Click+=gcnew System::EventHandler(这个,&Form1::btn\u初始化\u Click);
按钮控制列表。在(i)->控件->所有者->控件->添加(新按钮);
}
}

我自己找到了解决方案

按钮控制列表。在(i)->控件->所有者->控件->添加(新按钮)

应该是

按钮控制列表。在(i)->父控件->控件->添加(新按钮)