Шаг 26 - Обработка сообщений элемента классом элемента

Итак, нам нужно научиться обрабатывать сообщений от элемента управления. Мы будет делать это внутри класса элемента. То есть класс элемента будет сам реагировать на сообщения. Пишем код:

using System;
using System.Windows.Forms;
using System.Drawing;

class MyForm : AppForm 
{
	public static void Main()
	{
		Application.Run(new MyForm());
	}
}


class AppForm : Form
{
	public  AppForm()
	{
		MainMenu mnuFileMenu = new MainMenu();
		this.Menu = mnuFileMenu;
		mnuFileMenu.MenuItems.Add("Test");
		MyLabel label1 = new MyLabel();
		label1.Text = "Firs Step Site";
		label1.Location = new Point(15,15);
		label1.BackColor = Color.Pink;
		label1.ForeColor = Color.Maroon;
		this.Controls.Add(label1);
	}
}

class MyLabel : Label
{
	protected override void OnMouseDown(MouseEventArgs e) 
	{
		MessageBox.Show("You clicked on Label","First Step Site");
	}
}

Как видите методика простая. В самом классе Label есть методы которые вызываются при наступлении сообщения. Нам нужно просто их перегрузить. Мы создали свой класс как наследник от Label. Перегрузили метод OnMouseDown, а на форме создали уже элемент управления на основе нашего класса.

MyLabel label1 = new MyLabel();

Вот и все. Осталось только запустить и проверить.

gif/26_1.gif (3290 b)


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.