Как написать событие собственного контрола?

Olx
Дата: 14.05.2006 10:17:34
Доброго времени суток.

Есть свой контрол, на него кинул кнопку...
Подскажите пожалуйста, как добавить в события контрола событие нажатия на эту самую кнопку?
Спасибо.
Такова жизнь
Дата: 14.05.2006 11:52:13
Например, так:
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace MyNamespace
{
	public class UserControl1 : UserControl
	{
		private Button button1;
		private Container components = null;

		public UserControl1()
		{
			InitializeComponent();
		}

		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if(components != null)
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Component Designer generated code
		private void InitializeComponent()
		{
			this.button1 = new Button();
			this.SuspendLayout();
			// 
			// button1
			// 
			this.button1.Location = new Point(48, 48);
			this.button1.Name = "button1";
			this.button1.TabIndex = 0;
			this.button1.Text = "button1";
			this.button1.Click += new EventHandler(this.button1_Click);
			// 
			// UserControl1
			// 
			this.Controls.Add(this.button1);
			this.Name = "UserControl1";
			this.ResumeLayout(false);

		}
		#endregion

		private void button1_Click(object sender, EventArgs e)
		{
			this.OnButtonClick(e);
		}

		public EventHandler ButtonClick;

		protected virtual void OnButtonClick(EventArgs e)
		{
			if(this.ButtonClick != null)
			{
				this.ButtonClick(this, e);
			}
		}


	}
}

Olx
Дата: 14.05.2006 12:17:45
А как сделать чтобы в дизайнере, в Events`ах появилось событие ButtonClick?
Olx
Дата: 14.05.2006 19:11:28
Со вторым вопросом разобрался.
Надо обявлять событие:
public event EventHandler ButtonClick;

Спасибо, за помощь.