Добавить пользовательские панели в FlowLayoutPanel - PullRequest
0 голосов
/ 12 января 2019

Мне нужно динамически создавать панели, которые имеют определенные функции. Для этого я использую FloaLayoutPanel для добавления этих панелей и хочу создать пользовательские панели, которые предоставляют мне эти функции. Можно ли добавить пользовательские панели в FlowLayoutPanel?

Я создал класс и унаследовал от Panel. Я думал, что это не будет проблемой, но похоже, что FlowLayoutPanel принимает только (необработанные) панели.

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


}

Чтобы добавить мою панель в панель FlowLayout:

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 голосов
/ 12 января 2019

Не должно возникнуть никаких проблем при добавлении ваших настроенных панелей в панель Flowlayout, поскольку она принимает все, что наследуется от Control (панель наследует от Control, а ваша настроенная панель от Panel). просто добавьте его к своим элементам управления:

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