Итак, в основном у меня есть класс Filter, который генерирует панель с компонентами, которые мне нужны для фильтра (плюс другие вещи)
public Panel panel;
public Filter(string labelText)
{
Panel panel = new Panel();
Label label = new Label();
label.Text = labelText;
panel.Controls.Add(label);
panel.Visible = true;
panel.BackColor = Color.Black;
}
public Panel GetFilter()
{
return panel;
}
}
Затем в коде формы вызовите GetFilter (), чтобы добавитьpanel
Filter f = new Filter("name")
Controls.Add(f.GetFilter());
Фильтр не отображается, хммм, давайте посмотрим, хорошо ли написан код в фильтре.
//copy of the Fiter constructor
Panel panel = new Panel();
Label label = new Label();
label.Text = "label text";
panel.Controls.Add(label);
panel.Visible = true;
panel.BackColor = Color.PowderBlue;
Controls.Add(panel);
хорошо, что сработало, последнее, давайте посмотрим, если яможет панель из класса фильтра
public Panel panel;
public Filter(string labelText, Form f)
{
Panel panel = new Panel();
Label label = new Label();
label.Text = labelText;
panel.Controls.Add(label);
panel.Visible = true;
panel.BackColor = Color.Black;
f.Controls.Add(f);
}
public Panel GetFilter()
{
return panel;
}
черт, это тоже сработало, чего мне здесь не хватает? Ни один из приведенных выше рабочих примеров не работает для меня, потому что фильтр будет вызываться из абстрактного класса для добавления в родительскую панель. Что мне нужно сделать, чтобы панель отображалась?
pd: Цвета фона для тестирования, если панель добавлена.