В следующем цикле задач будут рассмотрены: ввод данных, проверка данных,
защита полей от внешних незапланированных действий пользователя.
События формы и элементов.
Класс в отдельном файле + статические методы
Элементы Button, TextBox, MessageBox, Label, DataGridView.
Свойства: ReadOnly, Enabled, Text,
Методы: Focus(),
Как добавить класс в проект: Solution_Explorer -> (правая кнопка) Имя_Проекта -> Add -> New_Item -> (Templates)Class ->
(Name)Имя_класса.cs -> Add
Приложение 1.
Создайте пустую форму. Добавьте в нее обработчики событий: Load, Activated, Deactivate, Resize, Paint, FormClosing, FormClosed.
В каждый обработчик включите оператор, изменяющий текст заголовка формы,
и оператор, добавляющий в общую строку название события. В обработчике события Form1_FormClosed()
поместите вызов диалогового окна, где выведите список событий, произошедших при
выполнении программы. В каждый обработчик событий, кроме Activated,
Deactivate, поместите вывод в
диалоговое окно названия события.
Запустите программу на выполнение. Запишите названия произошедших
событий, изменяемые заголовки формы. Сравните с результатом, выведенным в
обработчике события FormClosed.
namespace WinProgram_2_2 {
public
partial class Form1 : Form {
string result; /* создаем строку, в которой будут храниться результаты
наших действий */
public Form1() {
InitializeComponent( );
}
private void Form1_Load(object sender, EventArgs e)
{//загрузка формы и вывод сообщения на
экран
this.Text = "Form1_Load";
result += "Load";
MessageBox.Show("Событие Load");
}
private void Form1_Activated(object sender, EventArgs
e) {
this.Text
= "Form1_Activated";
result += "\nActivated"; // активация формы
}
private void Form1_Deactivate(object sender, EventArgs
e) {
this.Text
= "Form1_Deactivate";
result += "\nDeactivate";//
деактивация формы
}
private void Form1_Resize(object sender, EventArgs e) {
this.Text
= "Form1_Resize";
result += "\nResize";
MessageBox.Show("Событие
Resize");/* изменение
размеров формы и выведение сообщения на экран.*/
}
private void Form1_Paint(object sender, PaintEventArgs
e) {
this.Text
= "Form1_Paint";
result += "\nPaint";
MessageBox.Show("Событие Paint");
}
private void Form1_FormClosing(object sender, FormClosingEventArgs
e) {
this.Text
= "Form1_FormClosing";
result += "\nFormClosing";
MessageBox.Show("Событие
FormClosing"); /*
закрытие формы (действие не завершено) и выведение сообщения о событии.*/
}
private void Form1_FormClosed(object sender, FormClosedEventArgs
e) {
this.Text = "Form1_FormClosed";
result = "\nСобытия в жизни формы: \n"+result;
MessageBox.Show("Событие
FormClosed"+result); /*форма закрыта, вывод результата
преобразований на экран в общем списке, где каждое действие отображается на
отдельной строке*/
}
}
}
Пример результата выполнения программы: