将自定义面板添加到FlowLayoutPanel

时间:2019-01-12 14:59:45

标签: c# windows-forms-designer

我需要动态创建具有某些功能的面板。为此,我使用FloaLayoutPanel添加这些面板,并且我想创建自定义面板,为我提供这些功能。是否可以将自定义面板添加到FlowLayoutPanel?

我创建了一个类并从Panel继承。我以为这没问题,但似乎FlowLayoutPanel仅需要(raw)Panels。

public class MyPanel: Panel
{
    int value;
    public MyPanel(int given_value)
    {
        value = given_value;
    }


}

要将我的面板添加到FlowLayoutPanel:

MyPanel panel = new MyPanel(21);
panel.Click += new EventHandler(panel_clicked);

if (this.layoutPanel.InvokeRequired)
{
   this.layoutPanel.Invoke((MethodInvoker)delegate
   {
         this.layoutPanel.Controls.Add(myPanel);
   });
}
else
{
   this.layoutPanel.Controls.Add(myPanel);
}

我可以使用自定义面板创建FlowLayoutPanel吗?

1 个答案:

答案 0 :(得分:1)

将自定义面板添加到flowlayoutpanel应该没有问题,因为它接受从Control继承的任何内容(面板从控件继承,而自定义面板从面板继承)。只需将其添加到其控件中即可:

MyPanel myPanel = new MyPanel();
flowLayoutPanel1.Controls.Add(myPanel);