Я создал пользовательский элемент управления для формы окна, которая будет работать аналогично кнопке (и, пожалуйста, не предлагайте мне просто использовать кнопку, потому что я буду хранить данные у этого пользователя), но я не могу понять, как запустить событие OnClick()
. Я просеял несколько учебных пособий и посмотрел на несколько похожих вопросов на сайте, но я не могу заставить это событие уйти - так что я либо делаю что-то неправильно, либо все отправляют неправильный код (надеюсь это не последнее)C# Form UserControl События OnClick
в моем пользовательском control.cs,
namespace MobCreator {
public partial class MOBSample : UserControl {
public MOBSample() {
InitializeComponent();
}
protected override void OnMouseUp(MouseEventArgs e) {
this.BorderStyle = BorderStyle.FixedSingle;
base.OnMouseUp(e);
}
protected override void OnMouseDown(MouseEventArgs e) {
this.BorderStyle = BorderStyle.Fixed3D;
base.OnMouseDown(e);
}
public event EventHandler ButtonClick;
private void OnButtonClick(object sender, EventArgs e) {
// invoke UserControl event here
if (this.ButtonClick != null) this.OnButtonClick(sender, e);
}
}
}
И в моем form.cs,
private void MobCreatorForm_Load(object sender, EventArgs e) {
UserControl1.ButtonClick += new EventHandler(this.CustomEvent_Handler);
}
private void CustomEvent_Handler(object sender, EventArgs e) {
Console.WriteLine("Click");
}
Однако, когда я запускаю программу моей консоль не выводит «Нажмите».
OnButtonClick обрабатывает щелчок в вашей пользовательской форме какого контроля ?. Проблема должна заключаться в том, что щелчок на вашем usercontrol никогда не достигает частного void OnButtonClick (отправитель объекта, EventArgs e) –
Код выглядит нормально - проблема должна быть в другом месте. Чтобы быть уверенным, что если вы установите точку останова на свой 'Console.WriteLine (..)' и отлаживаете код, он никогда не достигнет этой точки останова? –
Правильно, он никогда не достигает точки останова. –