C# Windows Формы: использовать панель в качестве шаблона? - PullRequest
0 голосов
/ 09 февраля 2020

Я создаю windows форму. У меня три панели. Два из них находятся справа и слева как фиксированная часть пользовательского интерфейса. Предполагается, что средняя панель будет основным содержимым в зависимости от того, какая кнопка была нажата. Я реализовал несколько панелей контента, которые просто скрываются / отображаются при нажатии кнопки меню. Однако, если я правильно понял, панели и их дети все еще находятся в памяти - даже когда они скрыты?

Мне было интересно, существует ли простой способ создать шаблон моей панели и его дочерних элементов и создать или использовать его во время выполнения для экономии памяти?

1 Ответ

0 голосов
/ 10 февраля 2020

Может быть, вы можете попытаться определить пользовательскую панель, которая наследует класс Panel. А затем определите некоторые пользовательские свойства или элементы управления в конструкторе.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btAddPanel_Click(object sender, EventArgs e)
    {
        CustomPanel customPanel = new CustomPanel();
        this.Controls.Add(customPanel);
    }
}

public partial class CustomPanel : Panel
{
    public CustomPanel()
    {
        // modify properties
        this.BackColor = Color.Red;
        this.Location = new Point(100, 50);
        this.Size = new Size(300, 200);
        // add controls into panel
        TextBox textBox = new TextBox
        {
            Location = new Point(10, 20)
        };
        Label label = new Label
        {
            Text = "Test Label"
        };
        this.Controls.Add(textBox);
        this.Controls.Add(label);
    }
}

Надеюсь, эта демонстрация может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...