Меню
Разработки
Разработки  /  Информатика  /  Презентации  /  Прочее  /  Событийное программирование

Событийное программирование

Презентация использовалась на занятиях профессионального модуля в ОПК СТИ НИТУ МИСиС

21.12.2017

Содержимое разработки

Раздел № III . Разработка программ с графическим интерфейсом  Тема 8. Интерфейс программы и событийное программирование Лекция 8.3. Событийное программирование .

Раздел № III . Разработка программ с графическим интерфейсом

Тема 8.

Интерфейс программы и событийное программирование

Лекция 8.3.

Событийное программирование .

Литература Основная: Павловская Т.А. C #. Программирование на языке высокого уровня. Учеб. для вузов. – СПб: Питер, 2008 – 432 с. Павловская Т.А., Щупако Ю.А. C / C ++. Структурное программирование, Питер, 2005. – 402 с.  Дополнительная: Гросс К. С# 2008: Пер. с. анг. – СПб. БХВ-Петербург, 2009. – 576 с. Троелсен Э. Язык программирования С# 2005 и платформа /NET 2.0:пер. с анг. – М:. ООО «И.Д. Вильямс, 2007. – 1168 с.

Литература

Основная:

Павловская Т.А. C #. Программирование на языке высокого уровня. Учеб. для вузов. – СПб: Питер, 2008 – 432 с.

Павловская Т.А., Щупако Ю.А. C / C ++. Структурное программирование, Питер, 2005. – 402 с.

Дополнительная:

Гросс К. С# 2008: Пер. с. анг. – СПб. БХВ-Петербург, 2009. – 576 с.

Троелсен Э. Язык программирования С# 2005 и платформа /NET 2.0:пер. с анг. – М:. ООО «И.Д. Вильямс, 2007. – 1168 с.

Вопросы: 1. Стили программирования. 2. Сущность событийного программирования. 3. События стандартных компонентов интерфейса. 4. Структура программы.

Вопросы:

1. Стили программирования.

2. Сущность событийного программирования.

3. События стандартных компонентов интерфейса.

4. Структура программы.

1. Стили программирования

1. Стили программирования

Программа должна быть надежной, обеспечивать управления ее «производством» и сопровождением. Достижение указанных целей возможно, если программа имеет простую структуру, просто анализируется и легко модифицируется. Рациональным стилем программирования для небольших и средних по объему программ является структурное программирование . Для разработки сложных комплексов программ (включая программ с графическим интерфейсом) применяют объектно-ориентированное программирование . Однако идеи структурного программирования используются и здесь – при написании методов объектов. Доказано, что любой алгоритм можно представить тремя типами структур, называемых базовыми конструкциями. К этим структурам относят следование, ветвление и цикл .

Программа должна быть надежной, обеспечивать управления ее «производством» и сопровождением. Достижение указанных целей возможно, если программа имеет простую структуру, просто анализируется и легко модифицируется.

Рациональным стилем программирования для небольших и средних по объему программ является структурное программирование . Для разработки сложных комплексов программ (включая программ с графическим интерфейсом) применяют объектно-ориентированное программирование . Однако идеи структурного программирования используются и здесь – при написании методов объектов. Доказано, что любой алгоритм можно представить тремя типами структур, называемых базовыми конструкциями. К этим структурам относят следование, ветвление и цикл .

Следование – конструкция, реализующая последовательность выполнения двух и более операторов (простых или составных). Ветвление задает выполнение одного из операторов в зависимости от какого-либо условия. Цикл реализует многократное выполнение оператора. Общим свойством этих структур является то, что каждая из них имеет один вход и один выход. Базовые конструкции можно вкладывать друг в друга, сохраняя при этом указанное свойство. Применение базовых конструкций делает структуру программы понятной для программиста, упрощает поиск и устранение ошибок, облегчает модернизацию.

Следование – конструкция, реализующая последовательность выполнения двух и более операторов (простых или составных).

Ветвление задает выполнение одного из операторов в зависимости от какого-либо условия.

Цикл реализует многократное выполнение оператора. Общим свойством этих структур является то, что каждая из них имеет один вход и один выход. Базовые конструкции можно вкладывать друг в друга, сохраняя при этом указанное свойство. Применение базовых конструкций делает структуру программы понятной для программиста, упрощает поиск и устранение ошибок, облегчает модернизацию.

Иногда структурное программирование называют программированием без оператора goto . Неумеренное применение этого оператора запутывает логику выполнения программы, так как нарушает естественную последовательность реализации операторов. Поэтому применения этого оператора следует избегать. Однако в некоторых случаях применение оператора вполне целесообразно.

Иногда структурное программирование называют программированием без оператора goto . Неумеренное применение этого оператора запутывает логику выполнения программы, так как нарушает естественную последовательность реализации операторов. Поэтому применения этого оператора следует избегать. Однако в некоторых случаях применение оператора вполне целесообразно.

0) goto m 24; . . . . } . . . } m 24: … Применение вместо оператора безусловного перехода оператора break не решает задачу, так как он обеспечивает выход только из внутреннего цикла. " width="640"

Например, в следующем фрагменте

for ( i =0; i n ; i ++)

{

for (j=0;j

{

. . . .

if ( a 0) goto m 24;

. . . .

}

. . .

}

m 24: …

Применение вместо оператора безусловного перехода оператора break не решает задачу, так как он обеспечивает выход только из внутреннего цикла.

 Базовые конструкции структурного программирования

Базовые конструкции структурного программирования

2. Сущность событийного программирования

2. Сущность событийного программирования

ОС и приложения после запуска ожидают действий пользователя и реагируют на них, если такая реакция предусмотрена разработчиком. Любое действие пользователя (перемещение мышки, нажатие на клавишу клавиатуры, щелчок мышкой и т.п.) называют событием . События воспринимаются ОС и преобразуются в сообщения – запись (или структуру), содержащую необходимую информацию о событии (например, какая кнопка мыши была нажата, в каком месте это произошло). Сообщения поступают не только от пользователя, но и от системы, от таймера, от других программ. Первоначально сообщения поступают в ОС и ставятся в общую очередь. Из этой очереди они распределяются по приложениям. Каждое приложение содержит цикл обработки сообщений , который выбирает очередное сообщение из очереди и через ОС вызывает нужную функцию, предназначенную для обработки.

ОС и приложения после запуска ожидают действий пользователя и реагируют на них, если такая реакция предусмотрена разработчиком. Любое действие пользователя (перемещение мышки, нажатие на клавишу клавиатуры, щелчок мышкой и т.п.) называют событием .

События воспринимаются ОС и преобразуются в сообщения – запись (или структуру), содержащую необходимую информацию о событии (например, какая кнопка мыши была нажата, в каком месте это произошло). Сообщения поступают не только от пользователя, но и от системы, от таймера, от других программ.

Первоначально сообщения поступают в ОС и ставятся в общую очередь. Из этой очереди они распределяются по приложениям. Каждое приложение содержит цикл обработки сообщений , который выбирает очередное сообщение из очереди и через ОС вызывает нужную функцию, предназначенную для обработки.

 Windows  Системная очередь   Очередь приложения   Функции API Приложение Функция main     Функции – обработчики событий Окно приложения Цикл обработки сообщений Обработка сообщений в системе

Windows

Системная очередь

Очередь приложения

Функции API

Приложение

Функция main

Функции – обработчики

событий

Окно

приложения

Цикл обработки

сообщений

Обработка сообщений в системе

 Инициализация Функция 1  Обработчик событий Событие Функция k Завершение Структура программы, управляемой событиями

Инициализация

Функция 1

Обработчик

событий

Событие

Функция k

Завершение

Структура программы, управляемой событиями

У всех элементов управления имеется набор событий, с которыми можно связать методы – обработчики событий. Список обработчиков для выделенного компонента или группы компонентов отображается в окне свойств на вкладке событий Events . Для вызова этой вкладки надо нажать кнопку с изображением молнии (четвертая кнопка слева в заголовке окна).

У всех элементов управления имеется набор событий, с которыми можно связать методы – обработчики событий. Список обработчиков для выделенного компонента или группы компонентов отображается в окне свойств на вкладке событий Events . Для вызова этой вкладки надо нажать кнопку с изображением молнии (четвертая кнопка слева в заголовке окна).

Список событий, как список свойств, можно упорядочивать по именам в алфавитном порядке или по категориям. Первоначально все обработчики событий для компонентов пустые, т.е. они не связанны ни с какими функциями (методами). На нужные события следует подписаться ( subscribe ). Под подпиской понимается предоставление кода, который следует выполнить при возникновении этого события, т.е. запрограммировать обработчик событий ( event handler ). Обработчики событий представляют собой методы или просто функции.

Список событий, как список свойств, можно упорядочивать по именам в алфавитном порядке или по категориям. Первоначально все обработчики событий для компонентов пустые, т.е. они не связанны ни с какими функциями (методами).

На нужные события следует подписаться ( subscribe ). Под подпиской понимается предоставление кода, который следует выполнить при возникновении этого события, т.е. запрограммировать обработчик событий ( event handler ). Обработчики событий представляют собой методы или просто функции.

Двойной щелчок мышкой на пустом поле справа напротив имени выбранного имени события обеспечивает автоматическое формирование заготовки для обработчика событий. Обработчик любого события оформляется как метод формы, на которой расположен компонент. Методу присваивается имя по умолчанию (программист может его изменить). Имя содержит наименование компонента и название типа события. Тело метода обозначено парой фигурных скобок. Например, private void button 1_ Click ( object sender , EventArgs e )  {  }

Двойной щелчок мышкой на пустом поле справа напротив имени выбранного имени события обеспечивает автоматическое формирование заготовки для обработчика событий. Обработчик любого события оформляется как метод формы, на которой расположен компонент. Методу присваивается имя по умолчанию (программист может его изменить). Имя содержит наименование компонента и название типа события. Тело метода обозначено парой фигурных скобок. Например,

private void button 1_ Click ( object sender , EventArgs e )

{

}

Если в качестве обработчика нужно указать имя уже существующего метода, то достаточно выбрать имя этого метода в раскрывающемся списке рядом с именем события в окне событий. Первый параметр обработчика ( object sender ) определяет какой компонент вызвал обработчик, а второй параметр ( EventArgs e ) содержит дополнительную информацию о событии. Итак, если некоторое событие связано с обработчиком (например, с обработчиком щелчка мышкой по кнопке), то при наступлении такого события вызывается соответствующий метод. Поэтому одновременно с заданием метода для обработки события щелчка мышкой по кнопке в файле программы  Form1.Designer.cs  оформляется оператор  this.button1.Click += new  System.EventHandler(this.button1_Click);

Если в качестве обработчика нужно указать имя уже существующего метода, то достаточно выбрать имя этого метода в раскрывающемся списке рядом с именем события в окне событий.

Первый параметр обработчика ( object sender ) определяет какой компонент вызвал обработчик, а второй параметр ( EventArgs e ) содержит дополнительную информацию о событии.

Итак, если некоторое событие связано с обработчиком (например, с обработчиком щелчка мышкой по кнопке), то при наступлении такого события вызывается соответствующий метод. Поэтому одновременно с заданием метода для обработки события щелчка мышкой по кнопке в файле программы Form1.Designer.cs оформляется оператор

this.button1.Click += new System.EventHandler(this.button1_Click);

3. События стандартных компонентов интерфейса

3. События стандартных компонентов интерфейса

Класс Control определяет совокупность событий элементов управления. Для каждого компонента класса определен свой набор стандартных событий, на которые он может реагировать. К числу типовых событий относят: Activated - получение формой фокуса ввода; Click - одинарный щелчок мышкой по элементу управления . В некоторых случаях это событие происходит также и в других ситуациях, например при нажатии пользователем программы клавиши Enter ; DoubleClick  - двойной щелчок мышки по элементу управления . Обработка события Click  для некоторых элементов управления (например, для Button ) полностью исключает возможность события DoubleClick ; MouseDown - нажатие кнопки мышки над элементом управления . Это событие происходит перед отпусканием кнопки мышки;

Класс Control определяет совокупность событий элементов управления. Для каждого компонента класса определен свой набор стандартных событий, на которые он может реагировать. К числу типовых событий относят:

Activated - получение формой фокуса ввода;

Click - одинарный щелчок мышкой по элементу управления . В некоторых случаях это событие происходит также и в других ситуациях, например при нажатии пользователем программы клавиши Enter ;

DoubleClick - двойной щелчок мышки по элементу управления . Обработка события Click для некоторых элементов управления (например, для Button ) полностью исключает возможность события DoubleClick ;

MouseDown - нажатие кнопки мышки над элементом управления . Это событие происходит перед отпусканием кнопки мышки;

MouseUp  - отпускание кнопки мышки над элементом управления ; MouseMove - перемещение мыши. Происходит непрерывно при перемещении мышки ; DragDrop  – завершение операции перетаскивания объекта управления и освобождения кнопки мышки пользователем. Кроме этого события есть другие аналогичные – при размещении объекта внутри границ другого элемента, покидании границ другого элемента; Closed  - закрытие формы ; Load  - загрузка формы. Происходит до первоначального отображения формы.

MouseUp - отпускание кнопки мышки над элементом управления ;

MouseMove - перемещение мыши. Происходит непрерывно при перемещении мышки ;

DragDrop – завершение операции перетаскивания объекта управления и освобождения кнопки мышки пользователем. Кроме этого события есть другие аналогичные – при размещении объекта внутри границ другого элемента, покидании границ другого элемента;

Closed - закрытие формы ;

Load - загрузка формы. Происходит до первоначального отображения формы.

KeyDown - нажатие клавиши  или их сочетаний в то время как элемент управления находится в фокусе Это событие происходит всегда ранее событий KeyPress и KeyUp ; KeyPress  - нажатие клавиши , имеющий код (символьные клавиши, Enter , Del , BackSpace ). Происходит при нажатии клавиши, когда элемент управления находится в фокусе. Это событие происходит после события KeyDown и перед событием KeyUp ; KeyUp  - отпускание клавиши или их сочетаний. Различие между событиями KeyDown  ( KeyUp ) и KeyPress состоит в том, что KeyDown ( KeyUp )  передает код нажатой клавиши (позволяет выявлять нажатие специальных клавиш, таких как Shift, Ctrl, F1) , а KeyPress  – принимает символ Char , соответствующий значению клавиши (значение буквы а не совпадает со значением буквы А )  .

KeyDown - нажатие клавиши или их сочетаний в то время как элемент управления находится в фокусе Это событие происходит всегда ранее событий KeyPress и KeyUp ;

KeyPress - нажатие клавиши , имеющий код (символьные клавиши, Enter , Del , BackSpace ). Происходит при нажатии клавиши, когда элемент управления находится в фокусе. Это событие происходит после события KeyDown и перед событием KeyUp ;

KeyUp - отпускание клавиши или их сочетаний.

Различие между событиями KeyDown ( KeyUp ) и KeyPress состоит в том, что KeyDown ( KeyUp ) передает код нажатой клавиши (позволяет выявлять нажатие специальных клавиш, таких как Shift, Ctrl, F1) , а KeyPress – принимает символ Char , соответствующий значению клавиши (значение буквы а не совпадает со значением буквы А ) .

GotFocus – элемент управления получает фокус ввода; LostFocus  - элемент управления теряет фокус ввода. Это событие не следует использовать для выполнения проверки допустимости введенного значения. Лучше применять события Validated  и Validating ; Paint  - возникает при необходимости перерисовке формы. Validated  – элемент управления готов принять фокус и свойство CausesValidation этого элемента равно true . Событие запускается по завершению события Validating и оно указывает на завершение проверки; Validating – элемент готов принять фокус и свойство CausesValidation этого элемента равно true . Проверяемым элементом является тот, который теряет фокус, а не тот, который его получает .

GotFocus – элемент управления получает фокус ввода;

LostFocus - элемент управления теряет фокус ввода. Это событие не следует использовать для выполнения проверки допустимости введенного значения. Лучше применять события Validated и Validating ;

Paint - возникает при необходимости перерисовке формы.

Validated – элемент управления готов принять фокус и свойство CausesValidation этого элемента равно true . Событие запускается по завершению события Validating и оно указывает на завершение проверки;

Validating – элемент готов принять фокус и свойство CausesValidation этого элемента равно true . Проверяемым элементом является тот, который теряет фокус, а не тот, который его получает .

Программист определяет поведения программы: - устанавливает перечень выполняемых действий; - определяет элементы управления, ответственные за инициализацию каждого из установленных действий; - выбирает способ инициализации (нажатие клавиши, щелчок мышкой и т.п.); - заготавливает шаблон функции – обработчика события. Заготовка шаблона производится просто – двойным щелчком в поле напротив имени соответствующего события на вкладке Events окна свойств; - записывает содержательная часть обработчика событий.

Программист определяет поведения программы:

- устанавливает перечень выполняемых действий;

- определяет элементы управления, ответственные за инициализацию каждого из установленных действий;

- выбирает способ инициализации (нажатие клавиши, щелчок мышкой и т.п.);

- заготавливает шаблон функции – обработчика события. Заготовка шаблона производится просто – двойным щелчком в поле напротив имени соответствующего события на вкладке Events окна свойств;

- записывает содержательная часть обработчика событий.

4. Структура программы

4. Структура программы

Любая программа начинает выполняться со стартового метода Main . Этот метод размещается в файле Program . cs , который создается автоматически и обычно не требует ручной корректировки. using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms;

Любая программа начинает выполняться со стартового метода Main . Этот метод размещается в файле Program . cs , который создается автоматически и обычно не требует ручной корректировки.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

namespace WindowsFormsApplication2 {  static class Program  {  . . .  static void Main()  {  Application.EnableVisualStyles();  Application.SetCompatibleTextRenderingDefault(false);  Application.Run(new Form1());  }  } } Функция Main содержит три оператора. Последний оператор запускает цикл обработки событий, который работает до закрытия главной формы . При ее закрытии происходит выход из цикла обработки событий, и выполнение приложения завершается.

namespace WindowsFormsApplication2

{

static class Program

{

. . .

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

Функция Main содержит три оператора. Последний оператор запускает цикл обработки событий, который работает до закрытия главной формы . При ее закрытии происходит выход из цикла обработки событий, и выполнение приложения завершается.

Вся информация о компонентах формы и их свойствах сохраняется в текстовом файле дизайнера формы Form 1. Designer . cs namespace WindowsFormsApplication1 {  partial class Form1  {  ///   /// Требуется переменная конструктора.  ///   private System.ComponentModel.IContainer components = null;  ///   /// Освободить  все  используемые  ресурсы .  ///   /// истинно, если управляемый ресурс должен быть удален; иначе ложно.

Вся информация о компонентах формы и их свойствах сохраняется в текстовом файле дизайнера формы Form 1. Designer . cs

namespace WindowsFormsApplication1

{

partial class Form1

{

///

/// Требуется переменная конструктора.

///

private System.ComponentModel.IContainer components = null;

///

/// Освободить все используемые ресурсы .

///

/// истинно, если управляемый ресурс должен быть удален; иначе ложно.

protected override void Dispose(bool disposing)  {  if (disposing && (components != null))  {  components.Dispose();  }  base.Dispose(disposing);  } + код , автоматически  созданный  конструктором  форм  private System.Windows.Forms.Button button1;  private System.Windows.Forms.Label label1;  } } В  конце  файла  содержится  список  всех  компонентов  формы .

protected override void Dispose(bool disposing)

{

if (disposing && (components != null))

{

components.Dispose();

}

base.Dispose(disposing);

}

+ код , автоматически созданный конструктором форм

private System.Windows.Forms.Button button1;

private System.Windows.Forms.Label label1;

}

}

В конце файла содержится список всех компонентов формы .

Если щелкнуть по знаку «+» слева от фразы « код, автоматически … », то раскроется область программы, которая содержит описание формы и размещенных на ней элементах. Это информация содержит результаты визуального программирования. #region Код, автоматически созданный конструктором форм Windows  ///   /// Обязательный метод для поддержки конструктора - не изменяйте  /// содержимое данного метода при помощи редактора кода.  ///   private void InitializeComponent()  {  this.button1 = new System.Windows.Forms.Button();  this.label1 = new System.Windows.Forms.Label();  this.SuspendLayout();  //  // button1  //  this.button1.Location = new System.Drawing.Point(28, 57);  this.button1.Name =

Если щелкнуть по знаку «+» слева от фразы « код, автоматически … », то раскроется область программы, которая содержит описание формы и размещенных на ней элементах. Это информация содержит результаты визуального программирования.

#region Код, автоматически созданный конструктором форм Windows

///

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

///

private void InitializeComponent()

{

this.button1 = new System.Windows.Forms.Button();

this.label1 = new System.Windows.Forms.Label();

this.SuspendLayout();

//

// button1

//

this.button1.Location = new System.Drawing.Point(28, 57);

this.button1.Name = "button1";

. . .

Примеры обработчиков событий для калькулятора а) нажатие на клавишу со знаком минус private void button4_Click(object sender, EventArgs e)  {  x1 = Convert.ToDouble(textBox1.Text); // перевод  строки  в  число  textBox 1. Text =

Примеры обработчиков событий для калькулятора

а) нажатие на клавишу со знаком минус

private void button4_Click(object sender, EventArgs e)

{

x1 = Convert.ToDouble(textBox1.Text); // перевод строки в число

textBox 1. Text = ""; //подготовка к набору следующего числа

oper = '-'; //сохранение выбранного кода операции

textBox1.Focus(); //возврат фокуса в строку редактирования

}

б) набор чисел с помощью кнопок подробное перечисление всех кнопок private void button12_Click(object sender, EventArgs e) {  if (sender =  = button8) textBox1.Text = textBox1.Text +

б) набор чисел с помощью кнопок

подробное перечисление всех кнопок

private void button12_Click(object sender, EventArgs e)

{

if (sender = = button8) textBox1.Text = textBox1.Text + "0";

if (sender = = button9) textBox1.Text = textBox1.Text + "1";

. . .

}

сокращенная форма записи  private void button12_Click(object sender, EventArgs e) {  // обработку можно описать одним оператором  textBox1.Text = textBox1.Text + (sender as Button).Text; } Для всех 10 кнопок задан один обработчик. Это возможно благодаря использованию в методе параметра sender , в котором передается компонент, вызвавший обработчик. Операция as  преобразует параметр sender (типа object ) к типу Button ( записывают с заглавной буквы). Тип Button  является производным от класса object , поэтому преобразование возможно.  Запись sender . Text  приведет к ошибке компиляции, поскольку класс object  не имеет свойства Text . Для назначения одного обработчика следует на форме выделить все компоненты и затем выбрать событие.

сокращенная форма записи

private void button12_Click(object sender, EventArgs e)

{

// обработку можно описать одним оператором

textBox1.Text = textBox1.Text + (sender as Button).Text;

}

Для всех 10 кнопок задан один обработчик. Это возможно благодаря использованию в методе параметра sender , в котором передается компонент, вызвавший обработчик. Операция as преобразует параметр sender (типа object ) к типу Button ( записывают с заглавной буквы). Тип Button является производным от класса object , поэтому преобразование возможно. Запись sender . Text приведет к ошибке компиляции, поскольку класс object не имеет свойства Text .

Для назначения одного обработчика следует на форме выделить все компоненты и затем выбрать событие.

в) выполнение вычислений – щелчок по кнопке = private void button5_Click(object sender, EventArgs e)  {  switch (oper)  {    case '+': textBox1.Text =  Convert.ToString(x1 +     Convert.ToDouble(textBox1.Text)); break;   . . .  }  }

в) выполнение вычислений – щелчок по кнопке =

private void button5_Click(object sender, EventArgs e)

{

switch (oper)

{

case '+': textBox1.Text = Convert.ToString(x1 + Convert.ToDouble(textBox1.Text)); break;

. . .

}

}

Десятичный разделитель, установленный в системе Application.CurrentCulture.NumberFormat.NumberDecimalSeparator[0] Задание цвета текста textBox1.ForeColor =Color.Red;   Отображение окн а с сообщением и заголовком MessageBox.Show(

Десятичный разделитель, установленный в системе

Application.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]

Задание цвета текста

textBox1.ForeColor =Color.Red;

Отображение окн а с сообщением и заголовком

MessageBox.Show("Нечисловое данное","Ошибка");

try  {  switch (oper)  {  case '+': textBox1.Text = Convert.ToString(x1 + Convert.ToDouble(textBox1.Text)); break;  case '-': textBox1.Text = Convert.ToString(x1 - Convert.ToDouble(textBox1.Text)); break;  …  default: textBox1.Text =

try

{

switch (oper)

{

case '+': textBox1.Text = Convert.ToString(x1 + Convert.ToDouble(textBox1.Text)); break;

case '-': textBox1.Text = Convert.ToString(x1 - Convert.ToDouble(textBox1.Text)); break;

default: textBox1.Text = "0"; break;

}

}

catch //(FormatException)

{

MessageBox.Show("Нечисловое данное", "Ошибка");

textBox1.ForeColor = SystemColors.WindowText;

}

Вопросы для самоподготовки 1. Сущность событийного программирования. 2. Типовые события для формы, кнопок и строки редактирования. 3. Порядок разработки метода для обработки события. 4. Порядок разработки метода для обработки группы идентичных событий. 5. Формирование текстовой строки из отдельных символов. 6. Обработка исключительных ситуаций.

Вопросы для самоподготовки

1. Сущность событийного программирования.

2. Типовые события для формы, кнопок и строки редактирования.

3. Порядок разработки метода для обработки события.

4. Порядок разработки метода для обработки группы идентичных событий.

5. Формирование текстовой строки из отдельных символов.

6. Обработка исключительных ситуаций.

-80%
Курсы дополнительного образования

Основы HTML

Продолжительность 72 часа
Документ: Cвидетельство о прохождении курса
4000 руб.
800 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Событийное программирование (792.5 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт

Пользовательское соглашение Политика обработки персональных данных Политика использования файлов cookie
Учителю!
Огромная база учебных материалов на каждый урок с возможностью удаленного управления
Тесты, видеоуроки, электронные тетради