Создание рабочей области проекта 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Создание рабочей области проекта



Введение

В жизненном цикле экономической информационной системы важным этапом является разработка системы. Использование современных программных платформ и инструментальных средств автоматизации программирования является неотъемлемым требованием, предъявляемым к созданию программного обеспечения информационной системы. Платформа.NET компании Microsoft является новейшей разработкой, в которой сконцентрирован опыт многих разработчиков программных систем. Специально для платформы.NET компании Microsoft разработала полнофункциональный объектно-ориентированный язык программирования C#. Этот язык вобрал в себя лучшие качества таких языков, как C++, Java. Обладая мощной функциональностью, язык C# в то же время является более простым, надежным и безопасным, чем его предшественники. Применение языка C# целесообразно для построения как Windows-, так и Web-приложений.

Платформа Microsoft.NET постоянно развиваются. На смену первым выпускам Visual Studio 2003,.NET Framework 1.0 и 1.1, языку C# 1.0 пришли более богатые в функциональном отношении Visual Studio 2005,.NET Framework 2.0 и язык C# 2.0. В настоящий момент уже выпущены релизы Visual Studio 2008, C# 3.0, библиотека Microsoft.NET Framework 3.0 и 3.5.

В предлагаемом лабораторном практикуме рассматриваются основные этапы проектирования информационной системы на учебном примере. В качестве учебного примера рассматривается информационная система учета данных по сотрудникам компании, которая реализуется как клиент-серверная система, базирующаяся на использовании Windows-форм., библиотеки классов Microsoft.NET Framework 2.0.

Примеры кода программ, приводимые в лабораторном практикуме проверены в среде Microsoft Visual Studio 2005, с библиотекой Microsoft.NET Framework 2.0, языком программирования Microsoft Visual C# 2005 и системой управления базами данных MS SQL Server-2005.

 

 Лабораторная работа:  Изучение основных элементов среды разработки Visual Studio Integrated Development Environment и Создание главного окна приложения в среде С#

 

Цель работы: Изучить основные элементы среды разработки 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

  1. Добавить код C#, который будет вызывать отображение приветствия.

Рис. 1.12. Результат выполнения приложения

Рис. 1.13. Вывод сообщения

 

 

Задание на лабораторную работу

  1. Изучить теоретический материал.
  2. Создать Windows форму.
  3. На Windows форме создать кнопку "Приветствие".
  4. Протестировать работу приложения
  5. Добавить в форму две кнопки (1 и 2), для которых задать различные цвета (свойство BackColor).
  6. Написать для кнопок 1 и 2 обработчики, которые изменяют цвета кнопок: при неоднократном нажатии любой кнопки цвета кнопок меняются (цвет кнопки 1 меняется на цвет кнопки 2 и наоборот).
  7. Добавьте кнопку "Выход". Закрытие приложения обеспечивает метод Exit() класса Application.

Протестировать работу приложения.

 

 

 

Создание меню

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

Элемент управления ToolStrip представляет собой контейнер, используемый для создания структур меню, панелей инструментов и строк состояний.

Элемент управления MenuStrip - это контейнер для структур меню в приложении. Этот элемент управления наследуется от ToolStrip.

Система меню строится добавлением объектов ToolStripMenu к menuStrip.

Класс ToolStripMenuItem служит для построения структур меню. Каждый объект ToolStripMenuItem представляет отдельный пункт в системе меню.

Начнем с создания стандартного ниспадающего меню, которое позволит пользователю выйти из приложения, выбрав пункт Объект > Выход. Для этого необходимо перетащить элемент управления MenuStrip (рисунок 2.1) на форму в конструкторе.

Рис. 2.1. Элемент управления MenuStrip

Элемент управления MenuStrip позволит вводить текст меню непосредственно в элементы меню. То, что должно получиться, представлено на рисунке 2.2.

Рис. 2.2. Простое меню на форме

При помощи графических средств можно настроить свойства любого элемента меню. Для пункта меню "Объект" зададим свойство Name равным objektToolStripMenuItem, для пункта меню "Выход" - exitToolStripMenuItem, а для пункта меню "Справка" - HelpToolStripMenuItem.

При двойном щелчке на пункте меню "Выход" (объект exitToolStripMenuItem) Visual Studio автоматически сгенерирует оболочку для обработчика события Click и перейдет в окно кода, в котором нам будет предложено создать логику метода (в нашем случае exitToolStripMenuItem_Click):

private void exitToolStripMenuItem_Click(object sender, EventArgs e) {// Здесь мы определяем реакцию на выбор пользователем // пункта меню }

На вкладке Свойства (Properties) при выводе окна событий, нажать кнопку событию Click будет соответствовать метод menuItemExit_Click (рисунок 2.3).

Рис. 2.3. Событие Click и обработчик события exitToolStripMenuItem_Click

Для корректного завершения приложения написать код для обработчика exitToolStripMenuItem_Click. Это можно сделать с помощью метода Exit класса Application:

private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); }

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

private void objektToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("Пункт меню Объект"); } При создании меню графическими средствами Visual Studio автоматически внесет необходимые изменения в служебный метод InitializeComponent и добавит переменные-члены, представляющие созданные элементы меню.

Задание на лабораторную работу

  1. Изучить теоретический материал.
  2. Создать главное меню, включающее следующие пункты: "Объект", "Справочник", "Справка".
  3. Для пункта "Объект" создать следующие подпункты: "Сотрудник", "Клиент", "Договор", "Поручение", "Сделка", "Выход".
  4. Для пункта "Справочник" создать следующие подпункты: "Должность", "Страна", "Регион", "Город", "ИМНС".
  5. Для пункта "Справка" создать подпункт - "О программе"

Протестировать работу приложения

 

Создание дочерней формы

Основа Интерфейса (MDI) приложения - MDI родительская форма. Это - форма, которая содержит MDI дочерние окна. Дочерние окна являются "подокнами", с которыми пользователь взаимодействует в MDI приложении. Создание MDI родительской формы описано в лабораторной работе 2.

Для определения главного окна (Form1), как родительской формы в окне Свойств, установите IsMDIContainer свойство - true. Это определяет форму как MDI контейнер для дочерних форм. Для того чтобы родительское окно занимало весь экран необходимо свойству WindowsState установить значение Maximized.

Создайте еще одно окно, которое будет дочерним (FormEmployee). Для этого выберите пункт меню Project/Add Windows Form.

Это окно должно вызываться из пункта главного меню "Сотрудник". Вставьте код, подобный следующему, чтобы создать новую MDI дочернюю форму, когда пользователь щелкает на пункте меню, например "Сотрудник" - имя объекта - employeeToolStripMenuItem

(В примере ниже, указатель события обращается к событию Click для employeeToolStripMenuItem_Click).

private void menuItemEmploye_Click(object sender, System.EventArgs e){ // Создать объект FEmployee класса FormEmployeeFormEmployee FEmployee = new FormEmployee(); // Установить родительское окно для дочернего FEmployee.MdiParent = this; // Вывести на экран дочернее окно FEmployee.Show();}

Данный обработчик приведет к выводу на экран дочернего окна.

Задание на лабораторную работу

  1. Изучить теоретический материал.
  2. Создать дочернее окно.
  3. В дочернее окно добавить пункты меню.
  4. Написать обработчик для вызова из главного меню дочернего окна.
  5. Создать коды методов-заглушек для функций приложения.
  6. Создать обработчики для вызова пунктов меню.

Протестировать работу приложения.

 

Лабораторная работа №4: Создание пользовательских диалоговых окон

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

Основные сведения

Диалоговое окно - это форма, обладающая некоторыми специальными характеристиками. Первая отличительная черта большинства диалоговых окон - то, что их размер изменять нельзя. Кроме того, в диалоговых окнах обычно не используются элементы управления, помещаемые в верхнюю часть обычных форм: ControlBox, MinimizeBox и MaximizeBox. Для пользователя диалоговое окно в противоположность обычному является практически неизменяемым.

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

Простейшее модальное диалоговое окно можно создать на базе класса MessageBox, входящего в библиотеку Microsoft /NET Framwork. В лабораторной работе 3 иллюстрировалось применение простейшего модального диалогового окна для вывода сообщения об активизации метода Undo. Для отображения диалогового окна использовался метод Show, передав ему через параметр текст сообщения "метод Undo". Прототип использованного метода Show следующий:

public static DialogResult Show(string message); Когда пользователь щелкает кнопку ОК, метод Show возвращает значение, равное DialogResult.OK

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

Прототип наиболее общего варианта метода MessageBox.Show, позволяющий реализовать практически все возможности диалогового окна MessageBox, приведен ниже

public static DialogResult Show{string message, // текст сообщенияstring caption, // заголовок окнаMessageBoxButtons btns, // кнопки, расположенные в окнеMessageBoxIcon icon, // значок, расположенный в окнеMessageBoxDefaultButton defButton, // кнопка по умолчаниюMessageBoxOptions opt // дополнительные параметры};

Параметр caption позволяет задать текст заголовка диалогового окна MessageBox. С помощью параметра btns можно указать, какие кнопки необходимо расположить в окне диалогового окна. Этот параметр задается константами из перечисления MessageBoxButtons (таблица 4.1)

Таблица 4.1. Перечисление MessageBoxButtons

Константа Кнопки, отображаемые в окне MessageBox
ОК OK
OKCancel OK, Cancel
YesNo Yes, No
YesNoCancel Yes, No, Cancel
RetryCancel Retry, Cancel
AbortRetryIgnore Abort, Retry, Ignore

Параметр icon метода MessageBox.Show позволяет выбрать один из нескольких значков для расположения в левой части диалогового окна. Он задается в виде константы перечисления MessageBoxIcon (таблица 4.2).

Таблица 4.2. Перечисление MessageBoxIcon

Константа Значок
Asterisk, Information  
Error, Stop  
Exclamation, Darning  
Question  
None Значок не отображается

 

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

Таблица 4.3. Перечисление MessageBoxDefaultButton

Константа Номер кнопки, получающей фокус ввода по умолчанию
Button l 1
Button 2 2
Button 3 3

 

Если в диалоговом окне отображаются кнопки Yes, No и Cancel, то они будут пронумерованы последовательно: кнопка Yes получит номер 1 (константа Button1), кнопка No - номер 2 (константа Button2), а кнопка Cancel - номер 3 (константа Button3).

Параметр opt метода MessageBox.Show позволяет задать дополнительные параметры. Эти параметры должны иметь значения из перечисления MessageBoxOptions (таблица 4.4).

Таблица 4.4. Перечисление MessageBoxOptions

Константа Описание
DefaultDesktopOnly Окно с сообщением отображается только на рабочем столе, выбранном по умолчанию
RightAlign Текст сообщения выравнивается по правому краю диалогового окна
RtlReading Текст отображается справа налево
ServiceNotification Окно отображается на активном рабочем столе, даже если к системе не подключился ни один пользователь. Данный параметр предназначен для приложений, работающих как сервисы ОС Microsoft Windows

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

Метод MessageBox.Show может вернуть одно из нескольких значений перечисления DialogResult (таблица 4.5).

Таблица 4.5. Перечисление DialoqResult

Константа Кнопка, при щелчке которой возвращается эта константа
Abort Abort
Cancel Cancel
Ignore Ignore
No No
None Модальное диалоговое окно продолжает работать
OK OK
Retry Retry
Yes Yes

Изменим метод Remove, добавив в него предупреждение перед удалением данных по сотруднику. Текст кода метода Remove должен иметь следующий вид:

private void Remove(){ DialogResult result = MessageBox.Show(" Удалить данные \n по сотруднику? ", "Предупреждение", MessageBoxButtons.YesNo, MessageBoxIcon.Warning,         MessageBoxDefaultButton.Button2); switch (result) {   case DialogResult.Yes:       {//выполнить действия по удалению данных по сотруднику                 MessageBox.Show("Удаление данных");           break;       }   case DialogResult.No:       {//отмена удаления данных по сотруднику                 MessageBox.Show("Отмена удаления данных");           break;       } }

В результате исполнения кода приложения и выбора пункта меню "Удалить" будет выводиться предупреждение, приведенное на рисунке 4.1.

Рис. 4.1. Модальное диалоговое окно предупреждения

Диалоговое окно можно создать не только на основе класса MessageBox, но и с использованием Windows - формы.

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

Рис. 4.2. Общий вид Windows - формы FormAbout

Для этого добавим в проект новый компонент (рисунок 4.3), выбрав из списка AboutBox (рис. 4.4).

Рис. 4.3. Выбор режима добавления нового компонента в проект

Рис. 4.4. Добавление нового компонента в проект

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

Мы введем собственную информацию. Для этого изменим фрагмент кода конструктора класса AboutBox1 следующим образом.

public AboutBox1(){ InitializeComponent(); this.Text = String.Format("О программе {0}", AssemblyTitle); this.labelProductName.Text = AssemblyProduct; this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion); this.labelCopyright.Text = "@РГЭУ, 2008"; this.labelCompanyName.Text = "Долженко А.И."; this.textBoxDescription.Text = "Дисциплина Современные технологии программирования. Студенческий проект";} Для открытия пользовательского модального диалогового окна используется метод ShowDialog. В лабораторной работе диалоговое окно должно открываться при щелчке пользователем на пункте в меню "Справка/О программе". Код для открытия диалогового окна может выглядеть следующим образом:// Открываем модальное диалоговое окноprivate void aboutToolStripMenuItem_Click(object sender, EventArgs e){ AboutBox1 aboutBox = new AboutBox1(); aboutBox.ShowDialog(this); }

Модальность формы определяет именно метод ShowDialog: при использовании кода ход выполнения программы будет приостановлен вплоть до того момента, пока метод ShowDialog не вернет соответствующее значение. Для пользователя это значит, что ему придется закрыть диалоговое окно, прежде чем он сможет выполнить какие-либо операции на главной форме.

После компиляции и загрузки приложения, вызвав пункт меню "Справка/О программе" на дисплеи будет выведено диалоговое окно, приведенное на рисунке 4.5.

Рис. 4.5. Вызов модального окна

При нажатии на кнопку ОК диалоговое окно будет автоматически закрыто и в ходе дальнейшего выполнения программы можно выяснить значение свойства DialogResult.

Задание на лабораторную работу

  1. Изучить теоретический материал.
  2. Создать модальное диалоговое окно с помощью класса MessageBox.
  3. Создать пользовательское модальное диалоговое окно для пункта меню "О программе".
  4. Написать обработчики для вызова модальных окон.

Протестировать работу приложения.

 

Контекстное меню

Класс ContextMenuStrip применяется для показа контекстного меню, или меню, отображаемого по нажатию правой кнопки мыши. Для создания объекта класса ContextMenuStrip необходимо открыть панель Toolbox и добавить элемент управления contextMenuStrip на форму FormEmployee (рисунок 5.9).

Рис. 5.9. Формирование на форме контекстного меню

 

В результате получаем форму FormEmployee с контекстным меню (рисунок 5.10)

Рис. 5.10. Форма с контекстным меню

Формирование пунктов контекстного меню производится аналогично формированию пунктов главного меню (смотри лабораторную работу 2). Сформированное контекстное меню приведено на рисунке 5.11.

Рис. 5.11. Вид контекстного меню

После формирования пунктов контекстного меню необходимо его подключить к форме FormEmployee. Для этого на вкладке Свойства (Properties) формы FormEmployee строке, соответствующей свойству ContextMenuStrip нужно установить значение созданного объекта contextMenuStrip1 (рис. 5.12)

Рис. 5.12. Подключение контекстного меню к форме

После компиляции проекта и запуска приложения на выполнение можно проверить режим активизации контекстного меню. Для этого необходимо выбрать из главного меню пункт "Сотрудник" и на появившейся форме в любом месте щелкнуть правой кнопкой мыши. Результат всплытия на форме контекстного меню показан на рисунке 5.13.

Рис. 5.13. Активизация контекстного меню

 

Привязка пунктов контекстного меню к конкретным функциям осуществляется путем создания кода обработчика событий для каждого пункта меню. Для формирования обработчика необходимо перейти в окно дизайнера формы FormEmployee, выделить на форме класс ContextMenuStrip и сделать двойной щелчок на соответствующем пункте меню, например "Отменить". В сгенерированном обработчике необходимо добавить вызов метода, для функции "Отменить" - метод Undo(). Листинг обработчика метода приведен ниже.

private void undo1ToolStripMenuItem_Click(object sender, EventArgs e){ Undo();} Задание на лабораторную работу
  1. Изучить теоретический материал.
  2. Создать панель инструментов.
  3. Создать контекстное меню.
  4. Написать обработчики для панели инструментов и контекстного меню.

Протестировать работу приложения

 

 

 

 

Создание строки состояния

На многих формах в реальных приложениях имеется элемент интерфейса, называемый строкой состояния (StatusStrip). Обычно в строке состояния выводится некоторая текстовая или графическая информация, относящаяся к работе приложения. Строка состояния может быть разделена на несколько "панелей" (panel) - отдельных частей окна. В каждой из этих панелей информация выводится отдельно.

Создадим строку состояния, в которой будут выводиться текстовые сообщения, относящиеся к пунктам меню.

В окне Toolbox выделим пункт StatusStrip и перетащим его на форму (рисунок 6.1).

Рис. 6.1. Добавляем на форму строку состояния

 

Объекту класса StatusStrip присвоим имя statusStripEmployee. Откроем выпадающий список объекта класса statusBarEmployee и выберем объект StatusLable(рисунок 6.2). Присвоим ему имя toolStripStatusLabelEmployee.

Рис. 6.2. Добавляем метку в строку состояния

 

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

Рис. 6.3. Окно приложения со строкой состояния

Для управления текстом строки состояния необходимо разработать обработчик события для соответствующих объектов.

Для формы FormEmployee в строке состояний необходимо вывести информацию при наведении курсора мыши на пунктах меню "Действие". Первоначально в дизайнере формы необходимо выделить пункт меню "Действие", перейти на вкладку Properties и открыть окно событий, нажав кнопку На данной вкладке необходимо выделить событие MouseEnter и в поле ввода сделать двойной щелчок. (рисунок 6.4).

Рис. 6.4. Окно событий

Система сгенерирует код обработчика, приведенного ниже.

private void actionToolStripMenuItem_MouseEnter(object sender, EventArgs e){ }

Добавим в обработчик следующий код:

private void actionToolStripMenuItem_MouseEnter(object sender, EventArgs e){    toolStripStatusLabelEmployee.Text =         "Выбор действий по сотрудникам";}

Если откомпилировать программу, запустить её, выбрать пункт меню "Сотрудник" и навести указатель мыши на пункт "Действие", то сгенерируется событие "MouseEnter" и в строке состояния выведется текстовое сообщение "Выбор действий по сотрудникам" (рисунок 6.5).

Рис. 6.5. Вывод сообщения в строке состояния

Если теперь переместить указатель мыши с пункта меню "Действие", то текст в строке состояния не изменится. Такой режим работы программы является неправильным, так как если указатель мыши перемещается с пункта меню "Действие", то строка состояния должна становиться пустой. Для обеспечения правильной работы программы воспользуемся ещё одним событием "MouseLeave", которое генерируется, когда мышь перемещается (покидает) с пункта меню "Действие". Обработчик данного события имеет следующий вид:

private void actionToolStripMenuItem_MouseLeave(object sender, EventArgs e){ toolStripStatusLabelEmployee.Text = "";}

Вышеприведенные обработчики будут вызываться только тогда, когда пользователь наведет указатель мыши на пункт меню "Действие". Для того чтобы обработчики реагировали на все строки пунктов главного меню "Действие" и "Отчет" формы FormEmployee необходимо сформировать соответствующие события MouseEnter и MouseLeave для всех подпунктов меню и создать для них обработчики.

Результаты компиляции и выполнения приложения приведены на рисунке 6.6.

Рис. 6.6. Экранная форма со строкой состояния

Задание на лабораторную работу

  1. Изучить теоретический материал.
  2. Создать строку состояний для главной и дочерней форм.
  3. Написать обработчики для формирования строки состояний, отображающих информацию о пунктах меню.

Протестировать работу приложения.

 

Общие сведения

Классы, представляющие графические элементы управления, находятся в пространстве имен System.Windows.Forms. С их помощью обеспечивается реакция на действия пользователя в приложении Windows Forms. Классы элементов управления связаны между собой достаточно сложными отношениями наследования. Общая схема таких отношений представлена на рисунке 7.1.

Класс Control, как общий предок, обеспечивает все производные классы общим набором важнейших возможностей. В числе этих возможностей можно перечислить события мыши и клавиатуры, физические размеры и местонахождение элемента управления (свойства Height, Width, Left, Right, Location), установку цвета фона и цвета переднего плана, выбор шрифта и т.п.

При создании приложения можно добавить элементы управления на форму при помощи графических средств Visual Studio. Обычно достаточно выбрать нужный элемент управления в окне ToolBox и поместить его на форме. Visual Studio автоматически сгенерирует нужный код для формы. После этого можно изменить название элемента управления на более содержательное (например, вместо button1, предлагаемого по умолчанию, - buttonPrimer) Visual Studio позволяет не только размещать на форме элементы управления, но и настраивать их свойства. Для этого достаточно щелкнуть на элементе управления правой кнопкой мыши и в контекстном меню выбрать Properties (Свойства).

Рис. 7.1. Иерархия элементов управления Windows Forms

 

Все изменения, которые необходимо произвести в открывшемся окне (рисунок 7.2), будут добавлены в код метода ImtializeComponents().

Рис. 7.2. Настройка элементов управления средствами Visual Studio

То же самое окно позволяет настроить не только свойства данного элемента управления, но и обработку событий этого элемента. Перейти в список событий можно при помощи кнопки в закладке Properties (рисунок 7.3). Можно выбрать в списке нужное событие и рядом с ним сделать двойной щелчок или ввести имя метода или выбрать метод из списка.

Рис. 7.3. Настройка обработчиков событий

После задания имени метода или двойного щелчка Visual Studio сгенерирует заготовку для обработчика события.

Рассмотрим основные элементы управления Windows-форм.

Элемент управления TextBox

Элемент управления TextBox (текстовое окно) предназначен для хранения текста (одной или нескольких строк). При желании текст в TextBox может быть настроен как "только для чтения", а в правой и нижней части можно поместить полосы прокрутки.

Класс TextBox происходит непосредственно от класса TextBoxBase, обеспечивает общими возможностями как TextBox, так и RichTextBox. Свойства, определенные в TextBoxBase, представлены в таблице 7.1.

Таблица 7.1. Свойства TextBoxBase

Свойство Назначение
AcceptsTab Определяет, что будет производиться при нажатии на клавишу Tab: вставка символа табуляции в само поле или переход к другому элементу управления
AutoSize Определяет, будет ли элемент управления автоматически изменять размер при изменении шрифта на нем
BackColor, ForeColor Позволяют получить или установить значение цвета фона и переднего плана
HideSelection Позволяет получить или установить значение, определяющее, будет ли текст в TextBox оставаться выделенным после того, как этот элемент управления будет выведен из фокуса
MaxLength Определяет максимальное количество символов, которое можно будет ввести в TextBox
Modified Позволяет получить или установить значение, определяющее, был ли текст в TextBox изменен пользователем
Multiline Указывает, может ли TextBox содержать несколько строк текста
Readonly Помечает TextBox как "только для чтения"
SelectedText, SelectionLength Содержат выделенный текст (или определенное количество символов) в TextBox
SelectionStart Позволяет получить начало выделенного текста в TextBox
Wordwrap Определяет, будет ли текст в TextBox автоматически переноситься на новую строку при достижении предельной длины строки

 

 

В TextBoxBase также определено множество методов: для работы с буфером обмена (Cut, Copy и Paste), отменой ввода (Undo) и прочими возможностями редактирования (Clear, AppendText и т. п.).

Из всех событий, определенных в TextBoxBase, наибольший интерес представляет событие TextChange. Это событие происходит при изменении текста в объекте класса, производном от TextBoxBase. Например, его можно использовать для проверки допустимости вводимых пользователем символов (например, предположим, что пользователь должен вводить в поле только цифры или, наоборот, только буквы).

 

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

Таблица 7.2. Свойства, определенные в классе TextBox

Свойство Назначение
AcceptsReturn Позволяет определить, что происходит, когда пользователь при вводе текста нажал на Enter. Варианта два: либо в TextBox начинается новая строка текста, либо активизируется кнопка по умолчанию на форме
CharacterCasing Позволяет получить или установить значение, определяющее, будет ли изменяться регистр вводимых пользователем символов
PasswordChar Позволяет выбрать символ, используемый для отображения вводимых пользователем данных (в поле для ввода пароля)
ScrollBars Позволяет получить или установить значение, определяющее, будут ли в TextBox с несколькими строками присутствовать полосы прокрутки
TextAlign Позволяет определить выравнивание текста в TextBox (используются значения из перечисления HorizontalAlignment)

 

Значения перечисления HorizontalAlignment представлены в таблице 7.3.

Таблица 7.3. Значения перечисления HorizontalAlignment

Значение Описание
Center Выравнивание по центру
Left Выравнивание по левому краю
Right Выравнивание по правому краю

Класс Button

Кнопка (button) - это самый простой из всех элементов управления и при этом наиболее часто используемый. Можно сказать, что кнопка - это возможность принять ввод (щелчок кнопкой мыши или набор на клавиатуре) наиболее простым способом. Непосредственный предок класса System.Windows.FormButton в иерархии классов.NET - это класс ButtonBase, обеспечивающий общие возможности для целой группы производных от него элементов управления (таких как Button, CheckBox и RadioButton). Некоторые свойства ButtonBase представлены в таблице 7.4.

Таблица 7.4. Свойства ButtonBase

Свойство Назначение
FlatStyle Позволяет настроить "рельефность" кнопки. Используются значения из перечисления FlatStyle
Image Позволяет задать изображение, которое будет выводиться на кнопке (при этом можно указать точное местонахождение изображения). Фоновый рисунок лучше настраивать при помощи свойства BackgroundImage, определенного в базовом классе Control
ImageAlign Позволяет определить выравнивание изображения, размещенного на кнопке. Используются значения из перечисления ContentAlignment
Imagelndex, ImageList Эти свойства используются для работы с набором изображений (объектом ImageList), выводимых на кнопке
IsDefault Определяет, будет ли эта кнопка являться кнопкой по умолчанию (то есть срабатывать при нажатии на Enter)
TextAlign Позволяет получить или установить выравнивание текста на кнопке. Также используются значения из перечисления ContentAlignment

 

 

Сам класс Button не определяет каких-либо дополнительных возможностей помимо унаследованных от ButtonBase, за единственным, но существенным исключением свойства DialogResult. Это свойство позволяет возвращать значение при закрытии диалогового окна, например, при нажатии кнопок ОК или Cancel (Отменить).

 

В подавляющем большинстве случаев выравнивание текста, размещенного на кнопке, производится по центру, так что текст будет размещен строго посередине кнопки. Однако если нам по каким-то причинам необходимо использовать другой стиль выравнивания, в нашем распоряжении - свойство TextAlign, определенное в классе ButtonBase. Для TextAlign используются значения из перечисления ContentAlignment (таблица 7.5). Значения из того же перечисления используются и для определения положения изображения на кнопке.

 

 

Таблица 7.5. Значения перечисления ContentAlignment

Значение Описание (выравнивание)
BottomCenter По нижнему краю кнопки, относительно боковых краев - посередине
BottomLeft Но нижнему краю кнопки, слева
BottomRight По нижнему краю кнопки, справа
MiddleCenter По центру кнопки
MiddleLeft Относительно верхнего и нижнего краев - по центру, относительно боковых краев - слева
MiddleRight Относительно верхнего и нижнего краев - по центру, относительно боковых краев - справа
TopCenter По верхнему краю кнопки, относительно боковых краев - посередине
TopLeft По верхнему краю кнопки, слева
TopRight По верхнему краю кнопки, справа

Флажки

Для флажка (тип CheckBox) предусмотрено три возможных состояния. Как и тип Button, CheckBox наследует большую часть своих возможностей от базовых классов Control и ButtonBase. Однако в этом классе существуют и свои собственные члены, обеспечивающие дополнительные уникальные возможности. Наиболее важные свойства CheckBox представлены в таблице 7.6.

Таблица 7.6. Свойства класса CheckBox



Поделиться:


Последнее изменение этой страницы: 2021-04-04; просмотров: 215; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.248.208 (0.143 с.)