Как добавить пользовательский элемент управления на панели одним нажатием кнопки другого пользовательского элемента управления?

У меня есть панель 1, 2 пользовательских элемента управления uc1 и uc2. uc1 добавлен в панель. У uc1 есть кнопка UC1. Когда я нажимаю эту кнопку, я хочу скрыть uc1 и показать uc2, у которого есть другая кнопка UC2. Нажав кнопку UC2, я хочу скрыть uc2 и показать uc1 на панели.

Ответы на вопрос(1)

Решение Вопроса

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

Узнать больше:

Обработка и повышение событий

Пример:

Код дляUserControl1:

[System.ComponentModel.DefaultEvent("ButtonClicked")]
public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
        button1.Click += button1_Click;
    }

    public event EventHandler ButtonClicked;
    protected virtual void OnButtonClicked(EventArgs e)
    {
        var handler = ButtonClicked;
        if (handler != null)
            handler(this, e);
    }
    private void button1_Click(object sender, EventArgs e)
    {
        OnButtonClicked(EventArgs.Empty);
    }
}

А затем используйте событие в вашей форме:

private void userControl11_ButtonClicked(object sender, EventArgs e)
{
    MessageBox.Show("Button of UserControl1 Clicked!");
    //or for example, userControl11.Hide(); userControl21.Show();
}

Не забудьте подписаться наButtonClicked событие в вашей форме, используя вкладку событий сетки свойств, или код, или просто дважды щелкните наuserControl11 на вашей форме во время разработки.

Ваш ответ на вопрос