События элементов управления при программировании приложения среды выполнения Windows

Содержание

Слайд 2

В общем случае концепции событий при программировании приложения среды выполнения Windows

В общем случае концепции событий при программировании приложения среды выполнения Windows

подобны моделям событий в самых популярных языках программирования.
Виды событий элементов управления
Слайд 3

Структура обработчика события элементов управления: private void ИмяЭл_Событие(object sender, EventArgs e)

Структура обработчика события элементов управления:
private void ИмяЭл_Событие(object sender, EventArgs e)
Обработчик,

созданный вами для события, может обращаться к двум значениям, которые доступны как вводные при каждом вызове обработчика. Первое значение — это sender, представляющий собой ссылку на объект, к которому прикреплен обработчик. Параметр sender типизирован как базовый тип Object. Часто используется такой прием, как преобразование sender в тип с большей точностью. Этот прием полезен, если предполагаются проверки или изменения состояния самого объекта sender. Исходя из проекта приложения вы выбираете тип, в который можно безопасно преобразовать sender, учитывая участок прикрепления обработчика или другую специфику проекта.
Второе значение — это данные события, которые обычно включаются в определения синтаксиса как параметр e. Изучив параметр e делегата, который сопоставлен определенному обрабатываемому событию, можно выяснить, какие свойства доступны для данных события. Для некоторых событий значения определенных свойств данных события не менее важны, чем сам факт возникновения события. EventArgs класс служит базовым классом для всех классов, представляющих данные события.
Слайд 4

private void button3_KeyPress(object sender, KeyPressEventArgs e) private void Form1_MouseDown(object sender, MouseEventArgs

private void button3_KeyPress(object sender, KeyPressEventArgs e)
private void Form1_MouseDown(object sender,

MouseEventArgs e)
private void Form1_Paint(object sender, PaintEventArgs e)
private void Form1_Enter(object sender, EventArgs e)
Слайд 5

EventArgs

EventArgs

Слайд 6

KeyPressEventArgs

KeyPressEventArgs

Слайд 7

KeyEventArgs

KeyEventArgs

Слайд 8

Слайд 9

MouseEventArgs private void Form1_MouseDown(object sender, MouseEventArgs e) {

MouseEventArgs

private void Form1_MouseDown(object sender, MouseEventArgs e)
{

Слайд 10

MouseEventArgs

MouseEventArgs

Слайд 11

Событие Paint Происходит при перерисовке элемента управления. PaintEventArgs

Событие Paint

Происходит при перерисовке элемента управления.
PaintEventArgs

Слайд 12

Control – класс Определяет базовый класс для элементов управления, являющихся компонентами с визуальным представлением.

Control – класс Определяет базовый класс для элементов управления, являющихся компонентами с

визуальным представлением.
Слайд 13

private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { bool zpt=false; if (char.IsDigit(e.KeyChar)

private void textBox2_KeyPress(object sender, KeyPressEventArgs e)

{ bool zpt=false;
if (char.IsDigit(e.KeyChar) ==

true) return;
if (e.KeyChar == (char)Keys.Back) return;
if (textBox2.Text.IndexOf(',') != -1)
zpt = true;
if (zpt == true) { e.Handled = true; return; }
if (e.KeyChar == ',') return;
e.Handled = true;
}
Слайд 14

private void textBox1_KeyDown(object sender, KeyEventArgs e) { int i; i=Convert.ToInt32(textBox1.Text); if

private void textBox1_KeyDown(object sender, KeyEventArgs e)

{ int i;
i=Convert.ToInt32(textBox1.Text);
if (e.KeyData

== Keys.Down) i--;
textBox1.Text = i.ToString();
}
Слайд 15

private void button1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right)

private void button1_MouseDown(object sender, MouseEventArgs e)

{ if (e.Button == MouseButtons.Right)
button1.BackColor =

Color.Coral;
if (e.Button == MouseButtons.Left)
button1.BackColor = Color.Gray;
}
Слайд 16

Добавление и удаление обработчиков событий в программный код В C# синтаксис

Добавление и удаление обработчиков событий в программный код

В C# синтаксис

предусматривает использование оператора +=. Для регистрации обработчика справа от оператора добавляется ссылка на имя метода обработчика событий.
Для удаления
Слайд 17

Проект «Убегающая кнопка»

Проект «Убегающая кнопка»

Слайд 18

public partial class Form1 : Form { private Random r =

public partial class Form1 : Form
{
private Random r =

new Random();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
Слайд 19

private void button2_MouseMove(object sender, MouseEventArgs e) { if (Control.ModifierKeys == Keys.Control)

private void button2_MouseMove(object sender, MouseEventArgs e)
{
if (Control.ModifierKeys == Keys.Control)

return;
button2.Location = new Point(r.Next(ClientRectangle.Width - 5),
r.Next(ClientRectangle.Height - 5));
}
Слайд 20

Подключаемый обработчик private void button2_Click2(object sender, EventArgs e) { if (WindowState

Подключаемый обработчик

private void button2_Click2(object sender, EventArgs e)
{
if (WindowState

== FormWindowState.Normal)
{
WindowState = FormWindowState.Maximized;
}
else
{
WindowState = FormWindowState.Normal;
}
}
Слайд 21

private void button2_Click(object sender, EventArgs e) { button2.Text = "Изменить"; button2.MouseMove

private void button2_Click(object sender, EventArgs e)
{
button2.Text = "Изменить";
button2.MouseMove

-= button2_MouseMove;
button2.Click -= button2_Click;
button2.Click += button2_Click2;
}
Слайд 22

Слайд 23

private void Form1_MouseDown(object sender, MouseEventArgs e) { button1.Location = new Point(e.X

private void Form1_MouseDown(object sender, MouseEventArgs e)
{ button1.Location = new Point(e.X -

button1.Width / 2, e.Y - button1.Height / 2);
if (button2.Text != "")
{ button2.Text = "";
button2.MouseMove += button2_MouseMove;
button2.Click += button2_Click;
button2.Click -= button2_Click2;
}
}