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