воскресенье, 14 июля 2013 г.

Обработчики событий программы

В следующем цикле задач будут рассмотрены: ввод данных, проверка данных, защита полей от внешних незапланированных действий пользователя.
События формы и элементов.
Класс в отдельном файле + статические методы
Элементы 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); /*форма закрыта, вывод результата преобразований на экран в общем списке, где каждое действие отображается на отдельной строке*/
        }
    }
}

Пример результата выполнения программы: