лекция надежность. А. ОсиповРазработка Windows приложенийна C#
Скачать 0.74 Mb.
|
МИНИСТЕРСТВООБРАЗОВАНИЯИНАУКИРОССИЙСКОЙ ФЕДЕРАЦИИ САНКТ-ПЕТЕРБУРГСКИЙНАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙУНИВЕРСИТЕТ ИНФОРМАЦИОННЫХТЕХНОЛОГИЙ, МЕХАНИКИИОПТИКИ Н.А. Осипов Разработка 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 задайте свойство Anchor – Top, 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 и нажмите |