Как создаются события в C#

Как же создаются события в языке программирования C#? Этот вопрос будем рассматривать с точки зрения написания событий вручную без использования автоматизированных средств IDE, где всё можно создать в графическом интерфейсе за пару кликов мышью.

Для событий используется класс EventHandler из пространства имён System. Добавление слушателей событий SelectionChanged и TextChanged для RichTextBox1 контрола:

this.richTextBox1.SelectionChanged += new System.EventHandler(this.richTextBox1_SelectionChanged);
this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);

После этого останется только определить методы richTextBox1_SelectionChanged и richTextBox1_TextChanged, которые будут вызываться при случившемся конкретном событии.

Определим универсальную функция навешивания события MouseDoubleClick для любых переданных контролов:

public void hangEvent(Control control) {
	control.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(MouseDoubleClickEvent);
}

Определим метод MouseDoubleClickEvent, который вызывается при событии MouseDoubleClick:

public void MouseDoubleClickEvent(object sender, MouseEventArgs e) {}

Или так:

public void MouseDoubleClickEvent(object sender, EventArgs e) {}

При помощи определённого ранее общего метода hangEvent «навесим события», а вернее добавим слушателей событий MouseDoubleClick на richTextBox1 и richTextBox2 контролы:

hangEvent(richTextBox1);
hangEvent(richTextBox2);

Вот так просто добавлять слушателей событий для любых контролов в C# Windows Forms.