Образования и науки российской федерации




страница1/7
Дата24.12.2016
Размер0.74 Mb.
Просмотров395
Скачиваний0
  1   2   3   4   5   6   7

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ
ФЕДЕРАЦИИ

САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ



Н.А. Осипов
Разработка Windows приложений на C#
Учебное пособие


Санкт-Петербург
2012


2
УДК 004.655, 004.657, 004.62
Н.А. Осипов
Разработка Windows приложений на C# - СПб: НИУ ИТМО, 2012. –
74 с.
В пособии излагаются основы разработки Windows приложений и методические указания к выполнению лабораторных работ по дисциплине
«Технологии программирования».
Предназначено для студентов, обучающихся по всем профилям подготовки бакалавров направления: 210700 Инфокоммуникационные технологии и системы связи.
Рекомендовано к печати
Ученым советом факультета
Инфокоммуникационных технологий, протокол № 4 от 13 декабря 2011г.
В 2009 году Университет стал победителем многоэтапного конкурса, в результате которого определены 12 ведущих университетов России, которым присвоена категория
«Национальный исследовательский университет». Министерством образования и науки Российской Федерации была утверждена программа его развития на 2009–2018 годы. В 2011 году
Университет получил наименование «Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики».
© Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, 2012
© Н.А.Осипов, 2012.

3
Оглавление
Введение....................................................................................................... 5
Лабораторная работа 1. Введение в разработку форм ............................ 6
Упражнение 1. Настройка прямоугольной формы Windows .................. 6
Упражнение 2. Создание непрямоугольной формы Windows ................ 9
Упражнение 3. Создание наследуемой формы......................................... 9
Упражнение 4. Создание MDI-приложения ........................................... 10
Лабораторная работа 2. Работа с элементами управления ................... 14
Упражнение 1. Обработка событий Click и MouseMove....................... 14
Упражнение 2. Работа со списками ......................................................... 15
Упражнение 3. Создание и использование элемента управления
ToolStrip............................................................................ 17
Упражнение 4. Использование элемента управления StatusStrip......... 19
Упражнение 5. Работа с контейнерными элементами управления ...... 19
Упражнение 6. Элементы с поддержкой отображения текста ............. 22
Упражнение 7. Элементы с поддержкой редактирования текста ........ 24
Упражнение 8. Добавление и удаление элементов управления в режиме работы приложения........................................... 25
Упражнение 9. Проверка вводимых значений. События KeyPress и Validating. Элемент управления ErrorProvider .......... 26
Лабораторная работа 3. Создание элементов управления.................... 28
Упражнение 1. Создание составного элемента управления ................. 28
Упражнение 2. Создание специализированного элемента управления ....................................................................... 30
Упражнение 3. Создание расширенных элементов управления .......... 31
Лабораторная работа 4. Использование окон диалога в формах ......... 32
Упражнение 1. Использование компонента SaveFileDialog ................. 32
Упражнение 2. Использование компонента ColorDialog ...................... 33
Упражнение 3. Использование компонента FontDialog ........................ 34
Упражнение 4. Использование компонента OpenFileDialog ................ 34
Лабораторная работа 5. Взаимодействие управляемого и неуправляемого кода......................................................................................... 35
Упражнение 1. Использование COM-компонента для создания
PDF-приложения ............................................................. 35
Упражнение 2. Вызов функции API ........................................................ 36
Лабораторная работа 6. Организация печати в формах windows ........ 39
Упражнение 1. Использование диалоговых окон для печати............... 39
Упражнение 2. Создание документа печати........................................... 40
Упражнение 3. Создание специализированной формы предварительного просмотра ......................................... 41
Лабораторная работа 7. Асинхронное программирование................... 43
Упражнение 1. Работа с компонентом BackgroundWorker ................... 43

4
Упражнение 2. Использование делегатов ............................................... 45
Упражнение 3. Асинхронный запуск произвольного метода ............... 47
Лабораторная работа 8. Повышение удобства использования приложений........................................................................................................ 49
Упражнение 1. Создание контекстной справки ..................................... 49
Упражнение 2. Использование справочного файла............................... 50
Упражнение 3. Добавление всплывающих подсказок........................... 51
Упражнение 4. Автоматический выбор языка при запуске приложения ...................................................................... 51
Упражнение 5. Локализация приложения .............................................. 52
Лабораторная работа 9. Развертывание windows приложений ............ 55
Упражнение 1. Использование строго именованной сборки................ 55
Упражнение 2. Работа с глобальным кэшем сборок.............................. 56
Упражнение 3. Создание и использование файлов конфигурации приложения ...................................................................... 58
Упражнение 4. Создание и использование Windows Installer Setup
Project................................................................................ 59
Упражнение 5. Публикация приложения с помощью ClickOnce в сетевой папке ................................................................... 61
Лабораторная работа 10. Подключение к базе данных......................... 62
Упражнение 1. Организация доступа к данным и работа с объектом DataReader....................................................... 62
Упражнение 2. Извлечение и обновление данных с помощью объектов DataAdapter и DataSet ..................................... 64
Упражнение 3. Использование объектов DataView............................... 65
Упражнение 4. Связывание данных с элементами управления............ 66
Упражнение 5. Создание связанной с данными формы в мастере источников данных ......................................................... 68
Список литературы ................................................................................... 69

5
Введение
В результате изучения дисциплины «Технологии программирования» студенты познакомятся:

с базовыми концепциями и терминологией объектно- ориентированного программирования;

с основами разработки форм Windows;

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

разработки технических заданий на проектирование программного обеспечения;

разработки алгоритма и реализации программного обеспечения на основе современных средств Microsoft Visual Studio;

использования стандартных средств отладки программ.

По окончании обучения студенты смогут:

понимать основные элементы .NET Framework и связь С# с элементами платформы .NET;

работать в среде разработки Microsoft Visual Studio;

создавать, отлаживать, компилировать и выполнять программы;

создавать и использовать компоненты пользовательского интерфейса;

использовать стандартные элементы управления и применять их для контроля данных;

создавать документы, реализующие печать форм;

создавать приложения, использующие ранее разработанные модули и функции API;

знать базовые концепции и терминологию объектно- ориентированного программирования;

создавать, приложения, реализующие многопоточную технологию программирования;

использовать дополнительные возможности, повышающие удобство работы для пользователя при взаимодействии с приложением;

развертывать созданные приложения и использовать стандартные и пользовательские атрибуты;

реализовывать возможность подключения к базе данных;
В основном при выполнении упражнений приложения создаются обучаемыми с нуля. Для изучения наиболее сложных вопросов используются готовые стартовые проекты. Исходные файлы для выполнения таких заданий находятся в сетевой папке
\\atec\student\Work\C#\Windows_App.
Скопируйте их на локальную машину перед выполнением упражнений.

6
Лабораторная работа 1. Введение в разработку форм
Цель работы
Изучение методов построения форм Windows и получение навыков по настройке форм, созданию непрямоугольных и наследуемых
(производных) форм.
Упражнение 1. Настройка прямоугольной формы Windows
Формы Windows — это основной компонент пользовательского интерфейса. Формы предоставляют контейнер, который содержит элементы управления, меню и позволяет отображать приложение в уже привычной и единообразной модели. Формы могут реагировать на события мыши и клавиатуры, поступающие от пользователя, и выводить на экран данные для пользователя с помощью элементов управления, которые содержатся в форме.
Формы Windows содержат множество свойств, позволяющих настраивать их внешний вид и поведение. Просматривать и изменять эти свойства можно в окне Properties конструктора при разработке, а также программно во время выполнения приложения.
В следующей таблице перечислены некоторые свойства форм
Windows, отвечающие за внешний вид и поведение приложения:
Свойство
Описание
Name
Задает имя классу Form, показанному в конструкторе.
Данное свойство задается исключительно во время разработки
BackColor
Указывает цвет фона формы
Enabled
Указывает, может ли форма принимать ввод от пользователя. Если свойству Enabled задано значение
False, все элементы управления формы также блокируются
ForeColor
Указывает цвет переднего плана формы, то есть цвет выводимого текста. Если отдельно не указать значение свойства ForeColor элементов управления формы, они примут то же значение
Указывает вид и поведение границы и строки заголовка формы
Значения свойства:
None - Форма не имеет границы, не может быть минимизирована или развернута до максимальных размеров и у нее нет экранной кнопки управления окном и кнопки справки
FormBorderStyle
FixedSingle - Форма имеет тонкую границу, и размеры формы нельзя изменить во время выполнения. Форма

7
Свойство
Описание
может быть минимизирована, развернута до максимальных размеров, и иметь кнопку справки или кнопку управления окном, что определяется остальными свойствами
Fixed3D - Форма имеет объемную границу, и размеры формы нельзя изменить во время выполнения.
Форма может быть минимизирована, развернута до максимальных размеров, и иметь кнопку справки или кнопку управления окном, что определяется остальными свойствами
FixedDialog - Форма имеет тонкую границу, и размеры формы нельзя изменить во время выполнения. У формы нет экранной кнопки управления окном, но может быть кнопка справки, что определяется остальными свойствами. Форму можно минимизировать и развернуть до максимальных размеров
Sizable - Форма имеет настройки по умолчанию, но они могут изменяться пользователем. Форма может быть минимизирована, развернута до максимальных размеров, и иметь кнопку справки, что определяется остальными свойствами
FixedToolWindow - Форма имеет тонкую границу, и размеры формы нельзя изменить во время выполнения.
Форма содержит только кнопку закрытия
SizableToolWindow - Форма имеет тонкую границу, и размеры формы могут быть изменены пользователем.
Форма содержит только кнопку закрытия
Location
Когда свойству StartPosition задано значение Manual, это свойство указывает исходное положение формы относительно верхнего левого угла экрана
MaximizeBox
Указывает, есть ли у формы кнопка MaximizeBox
MaximumSize
Устанавливает максимальный размер формы. Если задать этому свойству размер 0; 0, у формы не будет верхнего ограничения размера
MinimizeBox
Указывает, есть ли у формы кнопка MinimizeBox
MinimumSize
Устанавливает минимальный размер формы, который пользователь может задать
Opacity
Устанавливает уровень непрозрачности или прозрачности формы от
0 до
100%.
Форма, непрозрачность которой составляет 100%, полностью непрозрачна, а форма, имеющая 0 % непрозрачности, наоборот, полностью прозрачна

8
Свойство
Описание
Size
Принимает и устанавливает исходный размер формы
StartPosition
Указывает положение формы в момент ее первого выведения на экран
Text
Указывает заголовок формы
TopMost
Указывает, всегда ли форма отображается поверх всех остальных форм, свойству TopMost которых не задано значение True
Visible
Указывает, видима ли форма во время работы
WindowState
Указывает, является ли форма минимизированной, развернутой до максимальных размеров, или же при первом появлении ей задан размер, указанный в свойстве Size
Создание нового проекта
1. Откройте Visual Studio и создайте новый проект Windows Forms.
Проект откроется с формой по умолчанию с именем Form1 в конструкторе.
2. Выберите форму в конструкторе. Свойства формы отображаются в окне Properties.
3. В окне Properties задайте свойствам значения, как указано ниже:
Свойство
Значение
Text
Trey Research
FormBorderStyle
Fixed3D
StartPosition
Manual
Location
100; 200
Opacity
75%
4. Перетащите три кнопки из Toolbox в форму и разместите их так, как вам будет удобно.
5. Поочередно выберите каждую кнопку и в окне Properties задайте свойству кнопок Text значения Border Style, Resize и Opacity.
6. Для кнопки Border Style задайте свойство AnchorTop, Left.
Реализация обработчиков событий
7. В конструкторе дважды щелкните кнопку Border Style, чтобы открыть окно с кодом обработчика события Buttonl Click. Добавьте в этот метод следующую строку кода: this.FormBorderStyle = FormBorderStyle.Sizable;
8. Возвратитесь в окно конструктора, дважды щелкните кнопку Resize и добавьте следующую строку: this.Size = new Size(300, 500);
9. Возвратитесь в окно конструктора, дважды щелкните кнопку
Opacity и добавьте следующую строку: this.Opacity = 1;

9
Запуск готового решения
10. Для построения решения выберите меню Build (Построение), далее команду Build Solution (Построить решение). При наличии ошибок исправьте их и снова постройте решение. В дальнейшем при необходимости выбора последовательности действий очередность команд будет описываться, например, так: Build | Build Solution.
11. Нажмите Ctrl + F5 или выберите Debug (Отладка) | Start Without
Debugging (Запуск без отладки), чтобы запустить приложение. Щелкайте каждую кнопку и наблюдайте, как изменяется вид формы.
12. Измените поочередно расположение левой и верхней границ формы и сравните поведение кнопок внутри формы. Обратите внимание, что расстояние до этих границ от кнопки Border Style остается
постоянным. Почему?
Упражнение 2. Создание непрямоугольной формы Windows
В этом упражнении вы создадите треугольную форму Windows.
1. Откройте Visual Studio и создайте новый проект Windows Forms.
Проект откроется с формой по умолчанию с именем Form1 в конструкторе.
2. В окне Properties задайте свойству FormBorderStyle значение
None, а свойству BackColor значение Red. В этом случае форму легче будет увидеть при тестировании приложения.
3. Перетащите кнопку из Toolbox в левый верхний угол формы.
Задайте свойству Text кнопки значение Close Form.
4. Дважды щелкните кнопку Close Form и добавьте в обработчик события Button1 Click следующий код: this.Close();
5. В конструкторе дважды щелкните форму, чтобы открыть обработчик события Form1 Load. Добавьте в этот метод следующий код
(он задает области формы треугольную форму указанием многоугольника с тремя углами):
System.Drawing.Drawing2D.GraphicsPath myPath = new System.Drawing.Drawing2D.GraphicsPath(); myPath.AddPolygon(new Point[] { new Point(0, 0), new Point(0, this.Height), new Point(this.Width, 0) });
Region myRegion = new Region(myPath); this.Region = myRegion;
6. Постройте и запустите приложение. Появится треугольная форма.
Упражнение 3. Создание наследуемой формы
Если у вас имеется уже готовая форма, которую вы собираетесь использовать в нескольких приложениях, удобно создать наследуемую
(производную) форму. В этом упражнении вы создадите новую форму и унаследуете ее от существующей базовой формы, а затем измените производную форму, настроив ее для конкретной работы.

10 1. Откройте проект из предыдущего упражнения. Базовой формой для создания производной будет треугольная форма.
2. Для кнопки Close Form задайте свойство Modifiers как protected.
3. Добавьте производную форму: меню Project (Проект) | Add
Windows Form…(Добавить форму Windows), в окне Categories
(Категории) укажите Windows Form, в окне Templates (Шаблоны) выберите Inherited Form (Наследуемая форма).
4. В окне Add New Item в поле Name укажите название формы: nForm.cs и нажмите Add для добавления формы.
5. В появившемся окне Inheritance Picker, в котором отображаются все формы текущего проекта, выберите базовую форму Form1 и нажмите
OK.
6. Постройте проект.
7. Откройте форму nForm в режиме конструктора. Проверьте, что она имеет треугольную форму и свойства базовой формы и элемента управления наследованы.
8. Настройте свойства производной формы: a. для кнопки: i. свойство Text – Hello!!! ii. свойство BackColor – Brown b. для формы: свойство BackColor – Blue
9. Постройте проект.
10. Задайте производную форму в качестве стартовой, указав в функции Main следующий код:
Application.Run(new nForm());
11. Постройте и запустите приложение.
Должна открыться производная форма со своими свойствами. Проверьте, наследуется ли закрытие формы кнопкой.
Упражнение 4. Создание MDI-приложения
В этом упражнении Вы создадите MDI-приложение с родительской формой, загружающей и организующей дочерние формы. Также Вы познакомитесь с элементом управления MenuStrip, который позволяет создать меню формы.
Создание нового проекта с базовой формой
1. Создайте новый проект
Windows
Forms, укажите имя
MdiApplication.
2. Переименуйте файл Form1.cs на ParentForm.cs.
3. Для формы задайте следующие свойства:
Name
ParentForm
Size
420; 320
Text
Parent Form
4. Проверьте, что произошли изменения в функции Main так, чтобы форма ParentForm стала стартовой.

11 5. Откройте файл ParentForm.cs в режиме конструктора.
6. Для свойства формы IsMdiContainer задайте значение True.
Таким способом эта форма будет определена как родительская форма MDI.
Создание меню для работы с формами
7. Создайте пункт меню File: a. Откройте ПИ Toolbox, добавьте на форму ЭУ MenuStrip и задайте для его свойства Name значение MdiMenu. b. Выделите меню в верхней части формы и задайте имя первого пункта меню &File. c. Для свойства Name пункта меню File задайте значение
FileMenuItem. d. Раскройте меню File. e. Выделите элемент, появившейся под элементом File, и задайте его как &New. f. Для свойства Name пункта меню New задайте значение
NewMenuItem. g. Выделите элемент, появившийся под элементом New, и задайте его как &Exit. h. Для свойства Name пункта меню Exit задайте значение
ExitMenuItem. i. Дважды кликните левой кнопкой мыши по пункту меню Exit для создания обработчика события Click. j. В обработчик события Click для пункта меню Exit добавьте следующий код: this.Close();
8. Создайте пункт меню Window: a. Переключитесь в режим конструктора. b. Выделите второй пункт меню справа от File и задайте его
значением &Window. c. Для свойства Name пункта меню Window задайте значение
WindowMenuItem. d. Раскройте меню Window. e. Выделите элемент, появившейся под элементом Window, и задайте для его свойства Text значение &Cascade. f. Для свойства Name пункта меню Cascade задайте значение
WindowCascadeMenuItem. g. Выделите элемент, появившийся под элементом Cascade, и задайте для его свойства Text значение &Tile. h. Для свойства Name пункта меню Tile задайте значение
WindowTileMenuItem. i. Дважды кликните левой кнопкой мыши по пункту меню
Cascade для создания обработчика события Click: this.LayoutMdi (System.Windows.Forms.MdiLayout.Cascade);

12 j. Вернитесь в режим конструктора и дважды кликните левой кнопкой мыши по пункту меню Tile. k. В обработчик события Click для пункта меню Tile добавьте следующий код: this.LayoutMdi(System.Windows.Forms.MdiLayout.TileHorizontal);
9. Реализуйте список открытых окон в меню Window: a. В конструкторе выберите компонент Mdimenu. Укажите в свойстве MdiWindowListItem имя пункта, созданного для этого – WindowMenuItem.
Создание дочерней формы
10. Создайте дочернюю форму: a. Выберите пункт меню Project | Add Windows Form. b. Задайте имя формы ChildForm.cs. c. Для свойства Text формы задайте значение Child Form. d. На ПИ Toolbox дважды кликните левой кнопкой мыши по ЭУ
RichTextBox и задайте для его свойства Name значение
ChildTextBox. e. Для свойства Dock ЭУ RichTextBox задайте значение Fill. f. Удалите существующий текст (если он есть) для свойства


Поделитесь с Вашими друзьями:
  1   2   3   4   5   6   7


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал