Создание главного окна приложения в среде С#. Лабораторная работа 1. Лабораторная работа 1 Создание главного окна приложения в среде С#
Скачать 0.71 Mb.
|
Лабораторная работа 1: Создание главного окна приложения в среде С# Цель работы: Изучить основные элементы среды разработки Visual Studio Integrated Development Environment ( IDE - интегрированная среда разработки) C# при создании на языке C# приложений с графически интерфейсом. Основные сведения Среда разработки Visual Studio Integrated Development Environment (IDE) - интегрированная среда разработки) включает набор инструментов и не зависит от используемых языков программирования, представленных в Visual Studio. Visual Studio можно использовать для создания кода и на различных языках программирования: управляемый C++ - Manadged C++, Visual Basic.NET, Java.NET, C#. В лабораторной работе проводится изучении среды разработки на языке программирования C# и следующих средств проектирования Windows - приложений: основные окна среды разработки C#; • построение базовой инфраструктуры с помощью Application Wizard (мастер создания приложений); • использование дизайнера форм Dialog Painter (программа для рисования диалоговых окон) для оформления диалоговых окон; • добавление новых функциональных возможностей в приложение с использованием вкладки Properties (свойства). Обзор среды разработки C# Для начала работы с Visual Studio.NET необходимо из главного меню выбрать пункт "Microsoft Visual Studio.NET" (VS). При этом на компьютере загрузится Developer Studio(визуальная среда разработки Microsoft Visual ) на экране компьютера будет выведено окно, изображенное на рисунке 1.1 Проектирование приложения В качестве приложения разработаем простое приложение, пользовательский интерфейс которого будет содержать только главное окно. Для этого необходимо выполнить следующие шаги: 1. Создать рабочую область, называемую также рабочей средой (проектирования), рабочим пространством и рабочей обстановкой нового проекта. 2. Для создания каркаса приложения можно использовать мастер создания приложений - Application Wizard. 3. Изменить внешний вид автоматически создаваемых мастером окон до желаемого вида. увеличить изображение Рис. 1.1. Стартовое диалоговое окно IDE 4. Добавить код C#, который будет вызывать отображение приветствия. Создание рабочей области проекта В VS каждому разрабатываемому приложению нужна рабочая среда. Рабочая среда проекта состоит из папок, в которых хранятся файлы исходного кода, а также из папок, в которых хранятся различные конфигурационные файлы. Создание рабочей среды нового проекта производится следующим образом: 1. Щелкните на ссылке Project (Создать новый проект) метки Create на начальной странице (Start Page) VS.NET. При этом откроется окно создания нового проекта New Project ( рисунок 1.2 ). увеличить изображение Рис. 1.2. Мастер создания нового проекта (New Project Wizard) 2. В дереве, отображаемом в подокне Project Type (Типы проектов) выберите "Visual C# /Windows". В подокне Templates (Шаблоны) выберите Windows Application (ПриложениеWindows ). 3. В поле Name (Название проекта) наберите имя проекта - Project_К4И_01 (имя проекта присваивается в соответствии со следующим синтаксисом: Project_"номер группы"_"номер бригады в группе" ). 4. Щелкните на кнопке ОК. (Да). Мастер создания нового проекта создаст новый класс Form1 , производный от System.Windows.Forms.Form с правильно настроенным методом Main( ) . В свойствах проекта автоматически будут созданы ссылки на необходимые сборки библиотеки базовых классов. На экране появится графический шаблон среды разработки ( рисунок 1.3 ). увеличить изображение Рис. 1.3. Графический шаблон главного окна приложения При помощи дизайнера графических форм можно добавлять в приложение любые элементы управления и он будет автоматически генерировать код для этих элементов (по умолчанию файл с главной формой приложения называется Form1.cs ). Для просмотра кода сгенерированного приложения можно в окне Solution Explorer щелкнуть правой кнопкой мыши на файле Form1.cs и в контекстном меню выбрать View Code( рисунок 1.4 ). увеличить изображение Рис. 1.4. Выбор режима View Code в контекстном меню В результате будет выведен на экран следующий листинг кода приложения using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Project_К4И_01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } } } Инициализация компонент реализуется кодом, который можно отобразить, в окне Solution Explorer щелкнуть на пункте Form.Designer.cs ( рисунок 1.5 ). увеличить изображение Рис. 1.5. Выбор режима Form.Designer.cs namespace Project_К4И_01 { partial class Form1 { private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Text = "Form1"; } #endregion } } В определении класса Form1 используется ключевое слово partial , которое позволяет определять класс, структуру или интерфейс, распределенные по нескольким файлам. ВVisual Studio 2005 классы Windows -форм формируются в двух файлах: Form1.cs и Form1.Designer.cs . В файле Form1.Designer.cs присутствует код, сгенерированный дизайнером Windows -формы, а файле Form1.cs - присутствует код инициализации класса и пользовательские члены класса (поля, свойства, методы, события, делегаты) Код приложения (Program.cs) имеет следующий вид: using System; using System.Collections.Generic; using System.Windows.Forms; namespace Project_К4И_01 { static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } Метод Main является точкой входа для приложения и вызывает Application.Run , который создает класс Form1 Класс System.Windows.Forms.Application Класс Application можно рассматривать как "класс низшего уровня", позволяющий нам управлять поведением приложения Windows Forms. Кроме того, этот класс определяет набор событий уровня всего приложения, например закрытие приложения или простой центрального процессора. Наиболее важные методы этого класса (все они являются статическими) перечислены в таблице 1.1 Таблица 1.1. Наиболее важные методы типа Application Метод класса Назначение Application AddMessageFilter( ) Эти методы позволяют приложению перехватывать сообщения RemoveMessageFilter( ) и выполнять с этими сообщениями необходимые предварительные действия. Для того чтобы добавить фильтр сообщений, необходимо указать класс, реализующий интерфейс IMessageFilter DoEvents( ) Обеспечивает способность приложения обрабатывать сообщения из очереди сообщений во время выполнения какой-либо длительной операции. Можно сказать, что DoEvents() - это "быстрый и грязный" заменитель нормальной многопоточности Exit( ) Завершает работу приложения ExitThred( ) Прекращает обработку сообщений для текущего потока и закрывает все окна, владельцем которых является этот поток OLERequired( ) Инициализирует библиотеки OLE . Можете считать этот метод эквивалентом .NET для вызываемого вручную метода Olelnitialize( ) Run( ) Запускает стандартный цикл работы с сообщениями для текущего потока Класс Application определяет множество статических свойств ( таблице 1.2 ), большинство из которых доступны только для чтения. Таблица 1.2. Наиболее важные свойства типа Application Свойство Назначение CommonAppDataRegistry Возвращает параметр системного реестра, который хранит общую для всех пользователей информацию о приложении CompanyName Возвращает имя компании CurrentCulture Позволяет задать или получить информацию о естественном языке, для работы с которым предназначен текущий поток CurrentlnputLanguage Позволяет задать или получить информацию о естественном языке для ввода информации, получаемой текущим потоком ProductName Для получения имени программного продукта, которое ассоциировано с данным приложением ProductVersion Позволяет получить номер версии программного продукта StartupPath Позволяет определить имя выполняемого файла для работающего приложения и путь к нему в операционной системе Многие из этих свойств предназначены для получения общей информации о приложении, такой как название компании, номер версии и т.п. Таким образом, при помощи многих свойств (например, CompanyName или ProductName ) можно очень просто получить метаданные уровня сборки. В сборке можно использовать любое количество встроенных и пользовательских атрибутов. В результате можно получить значение атрибута [assembly:AssemblyCompany(" ")] при помощи свойства Application.CompanyName без необходимости прибегать к использованию типов, определенных в пространстве имен System.Reflection Проектирование окна приложения Для разметки окон приложения в соответствии с требованиями пользователя необходимо изменить свойства класса Forms1 . Это можно сделать с помощью дизайнера окон (Form Designer ), путем изменения свойств в окне Свойства ( Properties ) или в коде программы. Размеры окна можно изменить непосредственно в Form Designer с помощью мыши захватывая и, растягивая/сжимая границы окна. Для изменения других свойств окна необходимо окно свойств Properties. На вкладке Properties измените значение в поле Text (Заголовок) на Проект К4И. При этом на форме изменится заголовок окна ( рисунок 1.6 ). увеличить изображение Рис. 1.6. Изменение значения в поле Text на вкладке Properties Откомпилируйте приложение, выбрав из главного меню команду Build Project_К4И_01 ( рисунок 1.7 ) увеличить изображение Рис. 1.7. Выбор из главного меню команды Build В строке состояний должно появиться сообщение: Build succeeded Для запуска приложения выберите из главного меню команду Debug/Start (F5) Приложение запустится в отладочном режиме и на экране появится разработанное окно ( рисунок 1.8 .). Рис. 1.8. Окно приложения Project_К4И_01 Для закрытия окна щелкните мышью на кнопке Добавление нового кода в приложение Добавим в главную форму элемент контроля - кнопку. Для этого откроем вкладку ToolBox ( рисунок 1.9 ) и сначала щелкнем мышью на элементе Button вкладки, а затем щелкнем мышью на форме. увеличить изображение Рис. 1.9. Вкладка ToolBox В результате получим форму с кнопкой ( рисунок 1.10 ). увеличить изображение Рис. 1.10. Форма с установленной кнопкой Установите кнопку в требуемое место на форме с помощью мыши. Для задания текста на кнопке выделите ее на форме и откройте вкладку Свойства и измените свойство Text на "Приветствие". В результате название кнопки изменится ( рисунок 1.11 ). увеличить изображение Рис. 1.11. Форма с измененным свойством Text кнопки Для связывания функций кнопки с диалоговым окном необходимо создать обработчик события на нажатие кнопки. Для этого сделайте двойной щелчок на кнопке. В результате в коде приложения сформируется шаблон функции обработчика события Click для кнопки. private void button1_Click(object sender, EventArgs e) { } В полученный шаблон добавим функцию вывода диалогового окна с сообщением. private void button1_Click(object sender, EventArgs e) { // Сообщение MessageBox.Show("Поздравляю с первым проектом на C#"); } После компиляции и запуска приложения получим следующее окно приложения ( рисунок 1.12 ), а при нажатии кнопки будет выведено сообщение ( рисунок 1.13 ). Рис. 1.12. Результат выполнения приложения Рис. 1.13. Вывод сообщения Структура и синтаксис функции Рассмотрим код листинга функции: private void button1_Click(object sender, EventArgs e) { // Сообщение MessageBox.Show("Поздравляю с первым проектом на C#"); } Первая строка является частью оболочки функции, сгенерированной Developer Studio на языке C#. Первое слово в строке, private определяет видимость функции как внутреннюю, т.е. видимую только для членов класса Form1 . Второе слово void , определяет тип данных возвращаемого значения (результата). Ключевое слово void , - перед именем функции, или в качестве аргумента функции (в скобках в конце строки), означает отсутствие соответствующего элемента. Третье слово в строке, button1_Click , обозначает имя функции. За именем функции следует список передаваемых ей аргументов, заключенный в круглые скобки. Круглые скобки нужно использовать всегда, даже когда у функции нет параметров. Правило 1. В C# при вызове функции за ее именем должны стоять круглые скобки, даже если данной функции не передается ни один параметр. В следующей строке листинга открывающая фигурная скобка ( { ) отмечает начало тела функции. В конце тела функции ставится закрывающая фигурная скобка ( } ). Правило 2. Тело функции всегда заключается в фигурные скобки {} Следующая строка начинается с двух косых черт, или слешей ( // ). Все, что следует до конца строки после двух идущих подряд косых черт (без пробелов, табуляций и т.п. между ними) рассматривается компилятором как комментарий и игнорируется. Исключением являются строки, в которых косая черта является частью текстовой, или литерной строки (строки букв). Это один из способов комментирования кода. Второй способ чаще используется при добавлении в код нескольких строк комментариев. В этом случае начало комментария обозначается идущими подряд косой чертой и звездочкой ( /* ), а конец комментария завершается таким же набором символов, но переставленных в обратном порядке ( */ ). Последняя строка в добавленном нами коде (в тексте это две строки): MessageBox.Show("Поздравляю с первым проектом на C#"); Во-первых, C# чувствителен к регистру. В именах функций и переменных заглавные (прописные) буквы должны использоваться точно так же, как в их объявлениях. Это означает, что компилятор распознает следующие имена функций как имена трех различных функций: MessageBox.Show messageBox.Show messagebox.Show Правило 3. Язык C# чувствителен к регистру. При вводе программ, написанных на языке C#, учитывайте регистр. В частности, все идентификаторы вводите с учетом регистра. За именем функции следуют аргументы функции, заключенные в круглые скобки, а после скобок стоит точка с запятой. Аргументы разделяются запятыми. Задание на лабораторную работу 1. Изучить теоретический материал. 2. Создать Windows форму. 3. На Windows форме создать кнопку "Приветствие". 4. Протестировать работу приложения 5. Добавить в форму две кнопки (1 и 2), для которых задать различные цвета (свойство BackColor ). 6. Написать для кнопок 1 и 2 обработчики, которые изменяют цвета кнопок: при неоднократном нажатии любой кнопки цвета кнопок меняются ( цвет кнопки 1 меняется на цвет кнопки 2 и наоборот). 7. Добавьте кнопку "Выход". Закрытие приложения обеспечивает метод Exit( ) класса Application 8. Протестировать работу приложения. |