Как отобразить другой UserControl, нажав кнопку в One UserControl? - PullRequest
2 голосов
/ 07 апреля 2019

Я очень плохо знаком с программированием, и в этот момент я запустил личный проект с Windows Form Application.

У меня есть форма с несколькими кнопками и панелью в виде контейнера. Кнопки загружают пользовательский контроль, как и ожидалось с помощью этой ссылки: https://www.youtube.com/watch?v=wZ63E_9ASwM

Но в одном из пользовательских контроллеров у меня есть 2 кнопки. Это я хочу загрузить usercontrols для каждой кнопки. Я понятия не имею, как сделать эту работу. Я пытался использовать для этого тот же метод, что и выше, без успеха.

Я нашел другой Вопрос, который задает ту же самую вещь, но это не имеет никакого смысла для меня. Динамическая загрузка UserControl после нажатия кнопки на другом UserControl

Меня беспокоит 2 кнопки в пользовательском контроле. Если пользовательский контроль загружен в контейнер панели, кнопки исчезнут

Может кто-нибудь объяснить это или есть более простой способ сделать эту работу?

Это кнопка, которая загружает пользовательский контроль с 2 кнопками в форме 1 (cs).

private void Personbutton_Click(object sender, EventArgs e)
{
    panelSelection.Height = Personbutton.Height;
    panelSelection.Top = Personbutton.Top;

    if (!ContainerPanel.Controls.Contains(ucPerson.Instance))
    {
        ContainerPanel.Controls.Add(ucPerson.Instance);
        ucPerson.Instance.Dock = DockStyle.Fill;
        ucPerson.Instance.BringToFront();
    }
    else
        ucPerson.Instance.BringToFront();
}

Это пользовательский контроль, который загружается в контейнер.

private static ucPerson _instance;

public static ucPerson Instance
{
    get
    {
        if (_instance == null)
            _instance = new ucPerson();
        return _instance;
    }
}

При нажатии этих кнопок я хочу загрузить другой / новый пользовательский контроль. Не заставляя кнопки исчезнуть.

private void CPbutton_Click(object sender, EventArgs e)
{
    CPbutton.FlatAppearance.BorderSize = 1;
    APbutton.FlatAppearance.BorderSize = 0;
}

private void APbutton_Click(object sender, EventArgs e)
{
    APbutton.FlatAppearance.BorderSize = 1;
    CPbutton.FlatAppearance.BorderSize = 0;
}
...