Виділімо елемент textBox1 на формі. Для даного елемента отримаємо список можливих подій.
Оберемо необхідну подію (наприклад, KeyPress) подвійним клацанням.
Обробники подій для всіх елементів, що знаходяться на формі Form1, розміщуються у класі Form1.
Тому, у класі Form1 з'явилася заготовка обробника події KeyPress для елемента textBox1. Цей метод називається textBox1_ KeyPress.
public partial class Form1 : Form
{
CCDL/INR: 1
public Form1()
{
InitializeComponent();
}
CCDL/IOK: 2
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//koA обработчика
}
}
На панелі подій для даної події виділеного елемента з'являється ім'я обробника цієї події.
private void textBox1_KeyPress(object sender,
KeyPressEventArgs e)
{
//код обработчика
}
Пояснимо синтаксис заголовка методу.
Усі функції-обробники подій не мають значення, що повертається (тип функції void) і мають два передавані параметри.
Перший параметр, sender, надає посилання на об'єкт, який викликав подію.
Другий параметр - це спеціальний об'єкт, через який передається додаткова інформація про подію яка відбулася. Наприклад, у випадку подій миші цей об'єкт містить координати миші у момент її клацання.
Зазвичай кожна подія створює обробник з різними типами для другого параметра.
Припустимо, що нам потрібно в обробнику події використовувати обидва параметри.
Як це зробити?
private void textBox1_KeyPress(object sender,
KeyPressEventArgs e)
{
string tx = "";
tx = (sender as TextBox).Text;
char c = e.KeyChar;
//продолжение кода обработчика
}
У нашому прикладі параметр типу object перетворюється до типу TextBox (sender as TextBox), так як подію KeyPres викликав об'єкт textBox1. Потім до цього об'єкту застосовується властивість Text, щоб отримати текст, який ввели у це текстове поле.
До цього об'єкту можна застосовувати будь-які інші властивості текстового поля.
Другий параметр об'єкт є типу KeyPressEventArg, який у даному прикладі, містить код символу натиснутої клавіші. До цього об'єкту застосовується властивість KeyChar, щоб отримати символ, який відповідає цій натиснутій клавіші.