Добавьте свое собственное событие в свой пользовательский элемент управления.
В пользовательском пользовательском элементе управления после добавления кнопки также прикрепите свой (внутренний) обработчик событий, который затем будет вызывать ваше собственное общедоступное событие, чтобы сообщить обработчику событий, какая кнопка была нажата (скорее всего здесь нужен собственный делегат).
Как только это будет сделано, ваша форма может добавить свой собственный обработчик событий так же, как вы добавляете его в стандартные элементы управления.
Перечитывая ваш вопрос, это может быть не точная структура (кнопка исправлена, но пользовательский элемент управления динамически добавляется?). В любом случае, оно должно быть почти таким же, просто оно отличается в том месте, где / когда вы добавляете обработчик события при создании.
С помощью одной статической кнопки сделать это намного проще - при условии, что вы используете Windows Forms:
В вашем пользовательском элементе управления:
public event EventHandler ButtonClicked; // this could be named differently obviously
...
public void Button_OnClick(object sender, EventArgs e) // this is the standard "on button click" event handler created using the form editor
{
if (ButtonClicked != null)
ButtonClicked(this, EventArgs.Empty);
}
В вашей форме:
// create a new user control and add the event
MyControl ctl = new MyControl();
Controls.Add(ctl);
ctl.ButtonClicked += new EventHandler(Form_OnUserControlButtonClicked); // name of the event handler in your form that's called once you click the button
...
private void Form_OnUserControlbuttonClicked(object sender EventArgs e)
{
// do whatever should happen once you click the button
}