Вы можете сделать что-то подобное, да:
public event EventHandler SaveButtonClick
{
add { btnSave.Click += value; }
remove { btnSave.Click -= value; }
}
Однако обратите внимание, что у этого есть один недостаток - аргумент «отправитель», предоставленный обработчикам событий, все равно будет кнопкой сохранения, а не вашим элементом управления… что может не соответствовать ожиданиям подписчика. Альтернативный подход заключается в том, чтобы самостоятельно подписаться на обработчик нажатия кнопки «Сохранить»:
public event EventHandler SaveButtonClick = delegate {};
private void OnSaveButtonClicked(object sender, EventArgs e)
{
// Replace the original sender with "this"
SaveButtonClick(this, e);
}
...
btnSave.Click += OnSaveButtonClicked();
Есть и обратная сторона в этом подходе ... у вас всегда будет ссылка от кнопки сохранения на "this", что может повлиять на мусор коллекция. По сути, ваш элемент управления не сможет собирать мусор до тех пор, пока кнопка сохранения также не будет пригодна для сбора мусора. В этом случае я очень сомневаюсь, что это проблема, но о ней стоит знать.