Вопрос по user-controls, winforms, c# – Как добавить пользовательский элемент управления на панели одним нажатием кнопки другого пользовательского элемента управления?

0

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

Ваш Ответ

1   ответ
0

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

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

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

Пример:

Код для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 на вашей форме во время разработки.

Похожие вопросы