picasso2 Ответов: 2

Вызвать кнопки форма с кнопкой управления UserControl


Я добавил пользовательский элемент управления, чтобы мой проект C# и добавил buttonsX для пользовательского элемента управления.
В моей основной форме у меня есть кнопка, которая заполняет список также в основной форме.
Как я могу вызвать button из buttonX?

Что я уже пробовал:

пытаюсь изучить метод invoke, но он очень сложный

2 Ответов

Рейтинг:
1

Dave Kreskowiak

Простой. Вы не.

Проблема с тем, что вы описываете, заключается в том, что вы навсегда привязываете UserControl к форме. Он не сможет быть использован ни в какой другой форме. Элементы управления никогда не должны ничего знать или хотеть делать с родительским контейнером (формой или другими элементами управления). Элементы управления отвечают только за свой собственный контент и код.

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

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


Рейтинг:
0

Karthik_Mahalingam

// user control button click event
       private void buttonsX_Click(object sender, EventArgs e)
       {
           Button parentFormButtonY = (Button) this.ParentForm.Controls.Find("buttonsY", true)[0];
           parentFormButtonY.PerformClick();

       }