Кнопка перенаправить событие делегировать событие
У меня есть отдельный противоречи пользовательских элементов управления 1Panel + 2Button на WinForm
Что я уже пробовал:
namespace TestToolBar1 { public partial class UserControl1 : UserControl { private System.ComponentModel.Container components = null; public UserControl1() { InitializeComponent(); } // define an event handler delegate which basically re-uses an existing // signature public delegate void EventHandler(object sender, System.EventArgs e); // decalre an event handler delegate EventHandler EventHandlerDelegate; // re-define the Click event new public event EventHandler Click { // this is the equivalent of Click += new EventHandler(...) add { this.EventHandlerDelegate += value; } // this is the equivalent of Click -= new EventHandler(...) remove { this.EventHandlerDelegate -= value; } } // forward the button's click event private void button_Click(object sender, System.EventArgs e) { if (this.EventHandlerDelegate != null) this.EventHandlerDelegate(sender, e); } } }
а декларация по форме
namespace TestToolBar1 { public partial class Form2 : Form { private TestToolBar1.UserControl1 userControl11; private System.ComponentModel.Container components = null; public Form2() { InitializeComponent(); UserControl1 myctrl = new UserControl1(); myctrl.Top = 0; myctrl.Left = 0; myctrl.Parent = panel1; myctrl.Show(); } .... private void userControl_Click1(object sender, System.EventArgs e) { Control ctrl = sender as Control; MessageBox.Show("message"); }
проблема EventHandlerDelegate всегда имеет значение null, а не перенаправлять
private void button_Click(object sender, System.EventArgs e) { if (this.EventHandlerDelegate != null) this.EventHandlerDelegate(sender, e); }