Разработка на языке C# приложений с графическим интерфейсом : использование Windows Forms
Покупка
Тематика:
Программирование на C и C++
Издательство:
Издательский Дом НИТУ «МИСиС»
Автор:
Мурадханов Сергей Эдуардович
Год издания: 2019
Кол-во страниц: 396
Дополнительно
Вид издания:
Учебник
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-907061-36-1
Артикул: 753139.01.99
Алгоритмические языки высокого уровня - это основа и фундамент для разработки сложных информационных комплексов и систем. Эта область знаний имеет как теоретическое направление (процедурный и объектно-ориентированный подход к анализу предметной области), так и практико-ориентированное (синтез информационной системы с помощью инструментов процедурной или объектно-ориентированной разработки). Для усвоения материала учебника необходимы базовые знания и навыки в алгоритмизации и реализации программ на C# на основе объектно-ориентированного подхода. Представленный материал дает как теоретические знания, так и практические навыки по разработке приложений в среде Visual Studio (2005-2017) на языке программирования С#. Предназначен для студентов, обучающихся в бакалавриате по направлениям подготовки 01.03.04 «Прикладная математика», 09.03.02 «Информационные системы и технологии», 09.03.03 «Прикладная информатика».
Тематика:
ББК:
УДК:
- 004: Информационные технологии. Вычислительная техника...
- 681: Точная механика. Автоматика. Приборостроение
ОКСО:
- ВО - Бакалавриат
- 01.03.04: Прикладная математика
- 09.03.01: Информатика и вычислительная техника
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИС ТЕРС ТВО НАУКИ И ВЫСШ ЕГО О Б РА З О ВА Н И Я РФ № 2997 ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС» ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ Кафедра автоматизированных систем управления С.Э. Мурадханов РАЗРАБОТКА НА ЯЗЫКЕ C# ПРИЛОЖЕНИЙ С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (использование Windows Forms) Учебник Рекомендовано редакционно-издательским советом университета Москва 2019
УДК 681.3 М91 Р е ц е н з е н т ы : канд. техн. наук, доц. С.В. Никифоров канд. техн. наук, доц. С.В. Громов Мурадханов С.Э. М91 Разработка на языке C# приложений с графическим интерфейсом (использование Windows Forms): учебник / С.Э. Мурадханов. – М. : Изд. Дом НИТУ «МИСиС», 2019. – 396 с. ISBN 978-5-907061-36-1 Алгоритмические языки высокого уровня – это основа и фундамент для разработки сложных информационных комплексов и систем. Эта область знаний имеет как теоретическое направление (процедурный и объектно-ориентированный подход к анализу предметной области), так и практико-ориентированное (синтез информационной системы с помощью инструментов процедурной или объектно-ориентированной разработки). Для усвоения материала учебника необходимы базовые знания и навыки в алгоритмизации и реализации программ на C# на основе объектно-ориентированного подхода. Представленный материал дает как теоретические знания, так и практические навыки по разработке приложений в среде Visual Studio (2005–2017) на языке программирования С#. Предназначен для студентов, обучающихся в бакалавриате по направлениям подготовки 01.03.04 «Прикладная математика», 09.03.02 «Информационные системы и технологии», 09.03.03 «Прикладная информатика». УДК 681.3 С.Э. Мурдаханов, 2019 ISBN 978-5-907061-36-1 НИТУ «МИСиС», 2019 2
Оглавление Предисловие...............................................................................................7 1. Визуальный интерфейс-приложения Windows Forms........................8 1.1. Описание графического интерфейса............................................... 8 1.1.1.Описание графического интерфейса ОС Windows. ................. 9 1.1.2. Реализация графического интерфейса в .Net.........................11 1.1.3. Система координат и единиц измерения............................... 16 1.1.4. Стандартный тип обработчика события................................ 17 1.1.5. Взаимодействие пользователя с приложением..................... 17 1.2. Простое приложение Windows Forms. ........................................... 19 1.2.1. Структура и состав «пустого» приложения Windows Forms.................................................................................... 20 1.2.3. Приложение, созданное только с помощью кода. ................ 35 1.3. Класс Application ( управление приложением). ............................ 41 1.4. Класс форм Form. ............................................................................. 51 1.4.1. Создание и уничтожение формы............................................ 60 1.4.2. Модальные и немодальные формы. ........................................ 60 1.4.3. Многодокументный интерфейс MDI (Multiple Document Interface). ............................................................ 61 1.4.4. Стандартные диалоги............................................................... 63 2. Основные классы элементов управления........................................101 2.1. Кнопки, флажки, переключатели................................................. 101 2.1.1. Класс кнопок Button............................................................... 101 2.1.2. Класс флажков CheckBox...................................................... 104 2.1.3. Класс переключателей RadioButton. ..................................... 104 2.2. Метки, индикаторы, ползунки, регуляторы, строки с выбором, окно подсказки..................................................... 105 2.2.1. Класс Label (надпись). ........................................................... 105 2.2.2. Класс LinkLabel (надпись с гиперссылкой). ........................ 106 2.2.3. Класс ProgressBar – индикатор процесса выполнения. ....................................................................................... 109 2.2.4. Класс TrackBar – ползунок (бегунок)....................................110 2.2.5. Классы HScrollBar и VscrollBar – полосы прокрутки.........111 2.2.6. Класс NumericUpDown – числовое поле с выбором...........112 2.2.7. Класс DomainUpDown – текстовое поле с выбором. ...........113 2.2.8. Класс ToolTip – окно всплывающей подсказки. ...................114 3
2.3. Классы текстовых полей TextBox, RichTextBox и MaskedTextBox................................................................................... 120 2.4. Классы списков ListBox, ComboBox, CheckedListBox.............. 124 2.5. Классы контейнеров...................................................................... 131 2.5.1. Класс GroupBox...................................................................... 132 2.5.2. Класс Panel. .............................................................................. 132 2.5.3. Классы FlowLayoutPanel и TableLayoutPanel...................... 132 2.5.4. Класс SplitContainer................................................................ 134 2.5.5. Класс Splitter. ........................................................................... 134 2.5.6. Классы страниц с ярлыками TabControl и TabPages. .......... 135 2.5.7. Класс ImageList....................................................................... 136 2.5.8. Класс PictureBox..................................................................... 137 2.5.9. Класс PropertyGrid – браузер свойств. .................................. 139 2.6. Класс ListView – список с расширенными возможностями. .................................................................................... 146 2.7. Класс TreeView – дерево объектов............................................... 184 2.8.1. Класс MonthCalendar – календарь. ........................................ 207 2.8.2. Класс DateTimePicker – ввод и отображение даты/времени..................................................................................... 208 2.8.3. Класс ErrorProvider – сигнализатор ошибок. ....................... 209 2.8.4. Класс HelpProvider – поставщик справочной информации....................................................................................... 212 2.8.5. Класс Notifylcon – извещающая пиктограмма (значок)..... 212 2.8.6. Класс Timer – таймер. ............................................................. 213 2.8.7. Класс BackgroundWorker – выполнение действий в потоке.............................................................................................. 215 2.9. Меню и инструментальные панели ............................................ 226 2.9.1. Класс MenuStrip – компонент для создания меню. ............. 227 2.9.2. Класс ContextMenuStrip – контекстное меню. ..................... 230 2.9.3. Класс ToolStrip – панель инструментальных кнопок......... 233 2.9.4. Классы StatusStrip, ToolStripManager, ToolStripContainer. ............................................................................. 235 2.10. Работа с мышью и клавиатурой ................................................ 248 2.10.1. Обработка событий клавиатуры......................................... 248 2.10.2. Обработка событий мыши. .................................................. 256 3. Использование графики...................................................................292 3.1. Контекст отображения. .................................................................. 293 4
3.2. Рисование на компоненте управления. ........................................ 295 3.2.1. Событие Paint для перерисовки клиентской области компонента. ........................................................................................ 296 3.2.2. Классы описания геометрических объектов – Point, Rectangle, Region............................................................................... 299 3.3. Классы Graphics и GraphicsPath для работы с графикой. ......................................................................... 305 3.4. Инструменты рисования............................................................... 321 3.4.1. Класс Сolor – работа с цветом. .............................................. 321 3.4.2. Класс Pen – работа с перьями. ............................................... 322 3.4.3. Класс Font – работа со шрифтами........................................ 324 3.5. Класс Brush – работа с кистями. ................................................... 326 3.5.1. Кисти для сплошной закраски Brush и SolidBrush............. 326 3.5.2. Кисть HatchBrush.................................................................... 326 3.5.3. Кисть TextureBrush................................................................. 329 3.5.4. Градиентные кисти LinearGradientBrush и PathGradientBrush. .......................................................................... 331 3.6. Методы рисования......................................................................... 334 3.6.1. Методы DrawLine и DrawLines – рисование линий........... 335 3.6.2. Методы DrawRectangle и DrawRectangles – рисование прямоугольников. .............................................................................. 338 3.6.3. Метод DrawPolygon – рисование многоугольников........... 340 3.6.4. Метод DrawEllipse – рисование эллипсов. ........................... 341 3.6.5. Метод DrawArc – рисование сегмента эллипса.................. 342 3.6.6. Метод DrawPie – рисование замкнутого сегмента эллипса. .............................................................................. 343 3.6.7. Методы DrawBezier и DrawBeziers – рисование кривых Безье................................................................................................... 345 3.6.8. Методы DrawCurve, DrawClosedCurve – рисование канонических сплайнов. ................................................................... 346 3.6.9. Методы FillRectangle и FillRectangles – закрашивание прямоугольников . ............................................................................. 348 3.6.10. Метод FillPolygon – закрашивание многоугольников...... 352 3.6.11. Метод FillEllipse – закрашивание эллипсов. ...................... 353 3.6.12. Метод DrawPie – закрашивание сегмента эллипса. .......... 354 3.6.13. Метод FillClosedCurve – закрашивание канонических сплайнов. ............................................................................................ 356 5
3.6.14. Метод FillRegion – закрашивание области объекта Region. .................................................................................. 358 3.6.15. Метод DrawPath и FillPath – рисование и закрашивание GraphicsPath.......................................................... 359 3.6.16. Методы работы с растровыми и векторными изображениями. ................................................................................. 361 3.6.17. Метод DrawIcon для рисования значков (иконок)............ 366 3.6.18. Метод DrawImage для рисования изображений. ............... 367 3.6.19. Методы рисования текста.................................................... 379 Библиографический список..................................................................393 6
ПРЕДИСЛОВИЕ Современное развитие общества предполагает широкое использование информационных технологий в различных сферах деятельности. Знания в области информационных технологий и их умелое использование – сегодня обеспечивают конкурентоспособность специалиста. Учебник предназначен для приобретения компетенций в области алгоритмизации задач и разработки приложений на базе объектноориентированного подхода с использованием языка программирования C#, предназначенного для разработки приложений, выполняемых в среде .NET Framework. Приобретаемые при изучении учебника навыки являются необходимым этапом для дальнейшего изучения возможностей платформы Microsoft .NET Framework. Учебник предназначен как для студентов, изучающих программирование, так и для желающих самостоятельно освоить язык программирования C#. Книга посвящена основам языка, без знания которых невозможно его практическое применение. 7
1. ВИЗУ АЛЬНЫЙ ИНТЕРФЕЙСПРИЛОЖЕНИЯ WINDOWS FORMS Любое приложение всегда имеет набор средств для взаимодействия с пользователем – интерфейс пользователя. С помощью интерфейса-приложения пользователь может описать решаемую задачу, выполнить ее решение, сохранить полученные результаты на внешнем устройстве. Приложения, использующие графический интерфейс (Graphic User Interface – GUI) называются Windows приложениями (или Windows Forms Application). Для взаимодействия с пользователями они используют класс Form. Так как в платформе .Net все основано на объектно-ориентированном подходе, то графический интерфейс реализован в виде специальных классов FCL пространства имен System.Windows.Forms. 1.1. Описание графического интерфейса Общая схема приложений, разрабатываемых для операционных систем (ОС) Windows, показана на рис. 1.1. Рис. 1.1. Структура типичного приложения Программа состоит из классов (типов), которые условно разделены на классы, реализующие взаимодействие приложения с пользовате8
лем (интерфейс пользователя), и классы, моделирующие предметную область решаемой задачи. Кроме собственных классов приложение использует классы библиотеки платформы FCL. Результаты работы приложения обычно сохраняются на внешних устройствах, в файлах или базах данных. 1.1.1.Описание графического интерфейса ОС Windows Графический интерфейс пользователя реализует и поддерживает ОС. Основным понятием GUI является «окно» (window), схема которого показана на рис. 1.2. На экране окна представляют собой некоторые участки (обычно прямоугольные), в которых выполняется ввод и вывод информации и где могут размещаться другие окна (дочерние), с помощью которых выполняется управление программой. Рис. 1.2. Основные элементы окна Созданием и управлением окнами занимается ОС, которая первой получает информацию от всех устройств компьютера (нажатие клавиши, движение мыши, поступление данных по сети). Обо всех событиях ОС рассылает сообщения приложениям, окна которых являются активными в текущий момент. Для этого во всех Windows приложениях, работающих с окнами, ОС создает специальные коллекции вида FIFO (очереди сообщений), в которые записываются все сообщения о событиях, произошедших в ПК и связанных с окнами данного при9
ложения. Приложение постоянно следит за сообщениями, поступающими в эту очередь, и выполняет их обработку. Окно приложения включает следующие основные части: • строка заголовка окна для размещения стандартных элементов управления окном (системное меню, появляющееся при щелчке на иконке приложения в левой части строки; три системные кнопки для свертывания окна, раскрытия окна на весь экран и закрытия окна); • строка меню приложения – набор команд (пунктов меню), при выборе которых приложение будет выполнять различные задачи (строка меню может располагаться в разных частях окна, чаще всего находится в его верхней части); • инструментальные полосы (строки с наборами специальных дочерних окон – элементов управления), с помощью которых также можно вызывать выполнение различных задач приложения (инструментальных полос в интерфейсе приложения может быть много и они могут размещаться в разных частях окна); • клиентская область – часть окна, в которой можно размещать различные элементы графического интерфейса и выполнять рисование; • строка состояния для вывода сообщений, информирующих пользователя о ходе выполнения приложения при работе с ним. Приложение обычно использует окна, которые можно разделить на группы: • основные окна, которые используются для представления всего приложения; они включают основные элементы интерфейса и инициируют создание других окон; • диалоговые окна, которые предназначены для получения информации и запуска на выполнение различных вспомогательных задач приложения; 10