Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Комп'ютерний практикум №1. Введение в Windows Forms





ЗП-03/3

“ВІЗУАЛЬНЕ ПРОГРАМУВАННЯ”

для напряму підготовки 6.050201 “Системна інженерія»

спеціальність 7.05020102 «Комп’ютеризовані та робото технічні системи»

 

 
 
 

 

Київ 2012

 

Комп'ютерний практикум №1. Введение в Windows Forms

Цель:овладеть возможностями использования инструментальных средств программной среды Microsoft Visual C# 2005 Express Edition для проектирования Windows приложений. Научиться создавать и работать с делегатами.

Окно кода программы

Как уже отмечалось, в окне дизайнера форм отображается только графическое представление визуальных компонент формы. Все данные вашей программы хранятся кодом программы на языке С#. Для того чтобы посмотреть код созданной нами формы, выберите в контекстном меню элемента Form1 окна Solution Explorer пункт View Code. Откроется файл Form1.cs. Это и есть представление синтаксисом языка С# класса формы. То же самое вы могли написать в текстовом файле, используя, например, редактор Notepad.

Роль класса Application

Класс Application определяет множество статических членов, позволяющих управлять поведением различных низкоуровневых элементов приложения Windows Form. Класс Application определяет набор событий, позволяющих реагировать, например, на завершение работы приложения или переход в состояние ожидания.

Функция Main задает точку входа программы, то место, откуда начнет-

ся выполнение описанных вами методов.

Метод Run() отвечает за создание, «запуск» в потоке приложения и возможное появление на экране дисплея первой формы. Стандартный вид этого метода:

Application.Run(new Form1());

 

Рассмотрим другие методы функции Main:

· DoEvents(). Обеспечивает для приложения возможность в ходе выполнения операций, требующих много времени, обрабатывать сообщения, находящиеся в это время в очереди сообщений.



· Exit(). Завершает выполнение Windows-приложения и выгружает из памяти домен этого приложения.

· EnableVisualStyles(). Настраивает приложение на поддержку визуальных стилей Windows XP. При активизации поддержки XP стилей указанный метод должен вызываться до загрузки главного окна с помощью Application.Run().

 

Например, можно реализовать конструктор следующего вида, который будет играть роль конструктора, заданного по умолчанию (результат запуска такого приложения см. рис. 5).

Рис. 5 Чтение атрибутов с помощью типа Application

Свойства проекта

Каждый проект (Application) имеет определенный набор свойств. Среда Visual Studio .NET позволяет изменять эти настройки визуально:

1. Выделить в дереве Solution Explorer корневой элемент MyFirstWindowsFormsApplication.

2. Нажать пункт меню View/Property Pages.

3. Появится окно, изображенное на рис. 6.

Примечание: если окно Properties отсутствует, в Visual Studio .NET его можно открыть используя меню View/Properties Window или горячей клавиши Alt+Enter.

Рис. 6. Свойства проекта

 

Закладка Application содержит основную информацию о проекте.

· Assembly Name — имя сборки.

· Default Namespace — используемое по умолчанию в проекте пространство имен.

· Target Framework – описывает версию.NET Framework с которой работает приложение.

· Output Туре — тип приложения. Здесь можно выбрать Windows Application, Console Application или Class Library. По умолчанию для Windows Forms устанавливается тип Windows Application.

· Startup Object — имя класса, содержащего метод Main, который будет вызываться при запуске приложения

 

· Assembly Information— содержит информацию о сборке или проекте, включая описание, информцию о версии, название компании, продукта и т.д.

· Resources – содержит основные опции для конфигурации приложения:

o Icon and manifest – выбрано по умолчанию. Позволяет выбрать собственную иконку или выбрать разные опции создания манифеста.

§ Application Icon — путь к файлу с пиктограммой для приложения.

§ Manifest – выбирает настройки создания манифеста когда приложение запущено в Windows Vista под User Account Control (UAC)

o Resource Filе – выбор этого пункта отменяет возможность выбора иконки и манифеста. Позволяет ввести путь (или выбрать его с помощью кнопки обзора) для добавления к проекту исходного файла Win32.

Кроме того, вам необходимо знать о свойствах на закладке Build(рис. 7).

Рис. 7 Окно свойств проекта Build

Эта вкладка позволяет описать конфигурационные свойства компиляции проекта.

· General – позволяет настроить основные опции компиляции проекта.

o Conditional compilation symbols – описывает символы которыми обуславливается условная компиляция

o Define DEBUG constant – задает отладочный символ. Аналогично команде /define:DEBUG в командной строке.

o Define TRACE constant – задает символ трассировки. Аналогично команде /define:TRACE в командной строке.

o Allow unsafe code - разрешить использование в проекте ключевого слова unsafe

o Optimize code. Включение этого свойства помогает, в некоторых случаях, увеличить производительность вашей программы в десятки раз.

· Errors and Warnings – используется для настройки опций ошибок и предупреждений для компиляции проекта

o Warning Level — определить уровень предупреждений, отображаемых при компиляции программы.

o Suppress warnings – блок возможностей компилятора создавать одно или несколько предупреждений

· Treat Warnings as Errors – настройки для описания какие предупреждения трактуются как ошибки

o None – предупреждения не воспринимаются ошибками

o Specific warnings – только описанные предупреждения воспринимаются ошибками.

o All – все предупреждения воспринимаются ошибками

· Output – применяется для описания выходных опций компилируемого проекта

o Output Path — путь, где будет сформирован выходной файл.

o XML documentation file – задает имя файла информации, куда будут заноситься комментарии из документа.

o Register for COM interop – показывает, что приложение будет использовать СОМ объекты, позволяет связывать СОМ объекты с приложением, которое разрабатывается.

o Generate serialization assembly – описывает средства создания сборки.

Мы не будем изменять свойства программы. Оставим все значения по умолчанию.

Запуск приложения

Запуск приложения из среды Visual Studio .NET возможен в двух режимах:

- с отладкой,

- без отладки.

Для запуска приложения в режиме отладки необходимо выбрать пункт меню Debug/Start. Этот режим используется для отладки создаваемого приложения в ходе выполнения программы. Если же необходимо запустить приложение только для того, чтобы посмотреть результаты выполненной работы, используется пункт меню Debug/ Start Without Debugging.

Запустите приложение в режиме без отладки {Debug/Start Without Debugging). На экране появится окно приложения (см. рис. 8).

 

Рис. 8 Приложение, запущенное в режиме без отладки.

Что такое форма

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

Форма — это объект, который задается свойствами, определяющими их внешний вид, методами, определяющими их поведение, и событиями, определяющими их взаимодействие с пользователем.

Резюме.

§ Load. Генерируется ОДИН РАЗ, непосредственно после первого вызова метода Form.Show() или Form.ShowDialog().

§ Activated. Многократно генерируется в течение жизни формы. Когда Windows активизирует форму. Связано с получением и потерей фокуса. Все необходимые мероприятия выполняются здесь. Методы Form.Show(), Form.ShowDialog(), Form.Activate() (передача фокуса, реализованная программно!) способствуют этому.

§ VisibleChanged. Генерируется всякий раз при изменении свойства Visible формы. Когда она становится видимой или невидимой. Событию способствуют методы Form.Show(), Form.ShowDialog(), Form.Hide(), Form.Close().

§ Deactivate. Возникает при потере фокуса формой в результате взаимодействия с пользовательским интерфейсом либо в результате вызова методов Form.Hide() или Form.Cloze() – но только для активной формы. Если закрывать неактивную форму, событие не произойдёт! Сказано, что Activated и Deactivate возбуждаются только при перемещении фокуса в пределах приложения. При переключении с одного приложения на другое эти события не генерируются.

§ Closing. Непосредственно перед закрытием формы. В этот момент процесс закрытия формы может быть приостановлен и вообще отменён, чему способствует размещаемый в теле обработчика события следующий программный код: e.Cancel = true; // e – событие типа CancelEventArgs.

§ Closed. Уже после закрытия формы. Назад пути нет. В обработчике этого события размещается любой код для "очистки" (освобождения ресурсов) после закрытия формы.

Диалог MessageBox

Для вывода каких-либо сообщений можно использовать метод Show класса MessageBox из пространства имен System.Windows.Forms.

 

MessageBox.Show(“This is a test”, ”Title”, MessageBoxButtons.OK);

 

Используя этот класс, можно организовать простую интерактивность с пользователем.

if(MessageBox.Show(“Press Yes or No?”, ”Title”, MessageBoxButtons.YesNo) == DialogResult.Yes) {…};

SDI- и MDI-приложения

Традиционно существует три разновидности приложений, которые могут создаваться MS, а именно:

· Приложения, основанные на диалоговом окне. Такие приложения предоставляются пользователям в виде единого диалогового окна, с помощью которого может быть осуществлен доступ ко всем функциональным возможностям.

· Однодокументные интерфейсы (Single Document Interface, SDI), Такие приложения предоставляются пользователям в виде меню, одной или нескольких линеек инструментов и одного окна, в котором пользователь может выполнять определенные действия.

· Многодокументные интерфейсы (Multi-Document Interface, MDI). Такие приложения представляются пользователям в. таком же виде, что SDI-приложения, однако обладают способностью одновременно поддерживать несколько открытых окон.

Примеры SDI- и MDI- приложения приведены на рис. 9.

Рис. 9. MDI-приложение

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

Однодокументные интерфейсы, как правило, предназначаются для решения какой-то одной конкретной задачи, при этом они позволяют пользователю загружать в приложение единственный документ, с которым он и будет вести работу (более подробно будет рассмотрен в лабораторной работе №3 при изучении диалоговых окон). Эта задача предполагает выполнение пользователем большого количества действий, и зачастую пользователю могут потребоваться возможности, позволяющие сохранять или загружать плоды своего труда. Хорошим примером SDI-приложений могут служить MS Paint и WordPad, также поставляемые совместно с MS Windows.

Однако такие приложения допускают открытие только одного документа в каждый конкретный момент времени, поэтому если пользователю требуется открыть второй документ, то ему будет необходимо открывать новый экземпляр SDI-приложения, у которого будет отсутствовать связи с первым документом и, следовательно, конфигурация, созданная для первого экземпляра, не окажет никакого влияния на конфигурацию второго. Например, вы в MS Paint выбрали красный цвет в качестве цвета рисования, затем открываете второй экземпляр MS Paint, а здесь в качестве цвета, используемого для рисования, выбирается цвет по умолчанию. Он будет черный.

Многодокументные интерфейсы почти полностью аналогичны SDI-приложениям за исключением того, что они обладают возможностью поддерживать более одного открытого документа в различных окнах, которые могут быть открыты одновременно. Одним из простых признаков MDI-приложения является наличие пункта Windowна правой стороне линейки меню перед пунктом Help.Примерами MDI-приложений служат Adobe Acrobat Reader и MS Word 97.

Четвертый тип приложений представлен MS Office 2000. Этот тип является смесью SDI- и MDI- приложений: окна, предоставляемые пользователю, имеют различное местоположение, и каждое окно отображается в линейке заданий. Такое приложение представляет собой несколько MDI- приложений, поскольку основное приложение не будет закрыто до тех пор, пока не будут закрыты все окна, а с помощью пункта меню Windows можно выбирать, какой именно из открытых.документов будет просматриваться, хотя при этом собственно пользовательский интерфейс представляет собой SDI-интерфейс.

Создание MDI-приложений.

Для создания MDI необходимо:

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

- предусмотреть панели инструментов для наиболее часто выполняемых в приложении операций, таких как изменение стиля шрифта, загрузка и сохранение документов,

- обязательно следует предусмотреть пункт меню Window, который позволял бы пользователю изменять положение открытых окон друг относительно друга (налагая их друг на друга в виде черепицы или каскада) и предоставлял бы ему список всех открытых окон.

Еще одной особенностью MDI-приложений является то, что если имеется некоторое открытое окно и в этом окне существует некоторое меню, то оно должно быть интегрировано в основное меню приложения.

Любое MDI-приложение состоит, по крайней мере, из двух разных окон. Первое окно называется MDI-контейнером,а окно, которое может быть открыто в контейнере, называется дочерним MDI-окном.При упоминании первого окна будут использоваться взаимозаменяемые термины "MDI-контейнер" и "основное окно", а при упоминании второго — термины "дочернее MDI-окно" ИЛИ просто "дочернее окно".

При создании MDI-приложения следует:

1. Создать Windows Application в Visual Studio.

2. Чтобы превратить основное окно приложения из формы в MDI-контейнер, достаточно просто присвоить свойству формы isMdiContainer значение true. При этом произойдет изменение цвета фона, указывающее на то, там не следует размещать видимые управляющие элементы, хотя такая возможность по-прежнему существует и может при определенных обстоятельствах оказаться полезной.

3. Для создания дочернего окна следует добавить в проект новую форму, выбрав Windows Form из диалогового окна, которое открывается при выборе пункта меню Project | Add New Item.

4. Эта форма становится дочерним окном, когда его свойству MdiParent присваивается ссылка на основное окно. Этому свойству нельзя присваивать значение с помощью панели Properties, это необходимо выполнять программным путем.

До того, как появится возможность выводить MDI-приложение на экран в его основном виде, нужно выполнить еще две вещи:

1. Необходимо передать MDI-контейнеру информацию о том, какие окна должны выводиться.

2. Затем вывести их, для чего следует просто создать новый экземпляр формы, которую вы собираетесь выводить, а затем вызвать для нее метод show(). Конструктор формы, предназначенной для вывода в качестве дочернего окна, должен привязаться к родительскому контейнеру. Это достигается за счет присваивания его свойства MdiParent экземпляру MDI-контейнера.

Стандартный делегат

Для большего понимания такого сложного термина приведем простой «жизненный» пример: Дядя Федор и кот Матроскин отправились ловить рыбу. На берегу они расставили свои удочки и решили, что один из них будет следить за клевом, а другой, дабы рационально и с пользой провести это время, либо червей копать, либо просто ОТДЫХАТЬ. Кроме того, конструкции удочек значительно отличались, поэтому было принято решение просто прикрепить инструкции по использованию к каждой из них. Делегатом в таком важном деле был назначен Дядя Федор. Другими словами:

ДЕЛЕГАТ – это представитель, наделенный особыми полномочиями определенными заранее (в нашем случае, «обработать» клюющую рыбу, насадить нового червяка, вообщем, вести процесс рыбалки). В отличие от полномочий - действий делегата, заранее не известно случившееся событие, инициирующее его работу (клюет рыба, сорвалась рыба …). А как именно реагировать при наступлении того самого события, делегату станет известно из предопределенной инструкции.

В любом случае, делегат, настроенный на метод, должен обеспечить реакцию на данное событие.

public delegate void EventHandler(object sender, EventArgs e);

В этом процессе кроме делегата (Дяди Федора) есть также другие участники:

1) событие, произошедшее с удочкой (object sender).

2) инструкция по использованию среагировавшей удочки (EventArgs e).

Инициатор действия - это всегда sender (объект отправитель, источник события), а второй участник (инструкция по использованию удочкой, на которую воздействует sender) – тип, содержащий спецификацию для данного события информацию (предопределённый класс EventHandler, в котором хранится информация о событии). Делегат - установленым образом обрабатывает послание sender-а, согласно инструкции EventArgs.

При создании самого делегата–представителя класса–делегата EventHandler, прежде всего, определяется соответствующий метод, выполнение которого обеспечивает реакцию на событие.

Таким образом, для реализации перехвата события достаточно использовать:

1. для идентификации события. Базовый класс EventArgs, если уведомление о произошедшем событии не связано с генерацией дополнительной информации или производный от данного класса класс, если необходимо передавать дополнительную информацию, связанную с событием,

2. предопределённый класс EventHandler для реализации ссылки на метод–обработчик события.

 

Комп'ютерний практикум №2. Обзор управляющих элементов и получение навыков работы с ними. Диалоговые окна. OpenFileDialog. SaveFileDialog. OpenFileDialog и SaveFileDialog для SDI-приложений. FontDialog. ColorDialog. Элемент управления NotifyIcon.

Цель:изучение класса Control, основных свойств и методов стандартных элементов управления, изучение класса CommonDialog.

Класс Control

Пространство имен System.Windows.Forms включает один класс, который является базовым почти для всех элементов управления и форм System.Windows.Forms.Control (см. рис.1). Он реализует основную функциональность для создания экранов, которые видит пользователь. Класс Control унаследован от класса System.ComponentModel.Component. Класс Component обеспечивает классу Control инфраструктуру, необходимую для того, чтобы его можно было перетаскивать и помещать на поле конструктора, а также, чтобы он мог включать в себя другие элементы управления.

Класс Control предлагает огромный объем функциональности классам, наследуемым от него. Рассмотрим методы и свойства по их функциональности:

· размер и положение (табл. 1);

· внешний вид (табл. 2);

· взаимодействие с пользователем (табл. 3);

· функциональность Windows (табл. 4);

· прочая функциональность (табл. 5).

Рис. 1. Иерархия классов в пространстве имен System.Windows.Forms.Control. Таблица 1. Размер и положение

Свойства Dock Позволяет делать управляющий элемент прилегающим к краям окна
  Anchor С помощью этого свойства можно определять каким образом будет вести себя управляющий элемент при изменении размеров своего контейнера
  Height Определяет расстояние от верхнего до нижнего края управляющего элемента
  Width Определяет ширину управляющего элемента
  Right Определяет положение правого края управляющего элемента относительно правого края окна
  Left Определяет положение левого края управляющего элемента относительно левого края окна
  Bottom Задавая значение этого свойства, можно определить расстояние от верха окна до нижней части управляющего элемента.
  Top Определяет положение верхнего края управляющего элемента относительно верхнего края окна
  Size  
Методы PointToClient  
  PointToScreen  

 

Таблица 2. Внешний вид

Свойства ForeColor Определяет цвет управляющего элемента
  BackColor Определяет цвет фона управляющего элемента
  BackGroundImage  
  BackgroundImage Layout  
  Font  
  Text  

 

Таблица 3. Взаимодействие с пользователем

События Click Наступает в том случае, когда происходит щелчок мышью на управляющем элементе (аналогично при нажатии Enter)
  DoubleClick Наступает в том случае, когда на управляющий элемент происходит двойной щелчок мышью. Использование события Click для некоторых управляющих элементов таких как Button означает, что событие DoubleClick никогда не будет вызываться
  MouseDown Возникает в тот момент, когда курсор мышки находится на управляющем элементе а кнопка находится в нажатом состоянии. Отличается от Click тем, что возникает после нажатия до отпускания кнопки мыши
  MouseUp Возникает в тот момент, когда курсор находится на управляющем элементе, а кнопка мыши отпущена
  MouseEnter  
  MouseLeave  
  MouseHover  
  KeyDown Наступает в момент нажатия клавиши, в том случае если управляющий элемент находится в фокусе. Это событие предшествует KeyPress и KeyUp
  KeyPress Наступает в момент нажатия клавиши, в том случае, если управляющий элемент находится в фокусе. Разница между KeyPress и KeyDown заключается в том, что KeyDown передает код нажатой клавиши, в то время как KeyPress передает значение типа char соответствующее нажатой клавише.
  KeyUp Наступает в момент, когда клавиша отпускается, в случае, если управляющий элемент находится в фокусе.
  Validating  
  Paint  
  Validating  
  Validated  
  Enter  
  Leave  
  GotFocus Возникает когда управляющий элемент оказывается в фокусе.
  LostFocus Возникает когда управляющий элемент оказывается вне фокуса.
  DragDrop Наступает, когда завершается процедура переноса мышью, а точнее, когда объект перенесен мышью на управляющий элемент и пользователь отпускает клавишу мыши
     
Свойство KeyCode  
  Modiffers  
  KeyValue  
  KeyData  
  Handled  

 

Таблица 4. Функциональность Windows

Свойства Handle  
  IsHandleCreated. Handle  
  HWnd  
  LParam  
  WParam  
  Msg  
  Result  
Методы WndProc  

 

Таблица 5. Прочая функциональность

Свойства BindingContext  
  CompanyName  
  ProductName  
  ProductVersions  
     
  Parent  
  TabIndex Определяет порядковый номер управляющего элемента для данного контейнера
  TabStop Определяет, возможно ли осуществить доступ к данному управляющему элементу с помощью Tab
  Visible Определяет является ли управляющий элемент видимым в процессе выполнения.
Методы Invalidate  
     
     
     

 

Toolbox

Окно Toolbox (панель инструментов, View —> Toolbox, или сочетание клавиш Ctrl+Alt+X) содержит компоненты Windows-форм, называемые также элементами управления, которые размещаются на форме. Оно состоит из нескольких закладок: My User, Controls, Components, Data, Windows Forms и General (рис. 2.):

Рис. 2. Окно Toolbox

Наиболее часто употребляемой закладкой является Windows Forms.

Для размещения нужного элемента управления на форму есть несколько способов:

4. Путем выбора в панели инструментов и кликом на форме места, где он будет установлен;

5. путем перетаскивания с панели инструментов

6. Двойным щелчком мыши на выбранном элементе в панели инструментов

с помощью конструктора

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

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

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

Таблица 6. Свойства 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. Свойства представлены в таблице 7.

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

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

 

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

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

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

 

Класс Button

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

 

 

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

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

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

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

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

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

 

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

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

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

Свойство Назначение
Appearance Настраивает вид флажка. Для этого свойства используются значения из перечисления Appearance
AutoCheck Позволяет получить или установить значение, определяющее, будут ли значения Checked и CheckState, а также внешний вид флажка автоматически изменяться при щелчке на нем
CheckAlign Позволяет установить горизонтальное и вертикальное выравнивание собственно флажка (квадратика) в элементе управления CheckBox. Используются значения из перечисления ContentAhgnment
Checked Возвращает значение типа bool, представляющее текущее состояние флажка (выбран или не выбран) Если для свойства ThreeState установлено значение true, то свойство Checked будет возвращать true как для явно выбранного флажка, так и для того флажка, для которого установлено значение "не определено" (indeterminate)
CheckState Позволяет получить или установить значение флажка (установлен - не установлен - не определено), используя не true и false, как в Checked, а три значения из перечисления CheckState. Обычно используется, если свойство ThreeState для флажка имеет значение true (то есть он допускает три значения).
ThreeState Определяет, будут ли для флажка использоваться три значения (из перечисления CheckState) или только два

Возможные состояния флажка (Indeterminate можно использовать только тогда, когда для свойства ThreeState установлено значение true) представлены в таблице 12.

Таблица 12 Значения перечисления CheckState

Значение Описание
Checked Флажок установлен
Indeterminate Значение не определено (обычно флажок выглядит как "серый", затененный)
Unchecked Флажок снят

 

Состояние "значение не определено" (indeterminate) может быть установлено, например, для верхнего элемента иерархии, в которой для одной части подчиненных элементов флажок установлен, а для другой - снят.

Комбинированные списки

Как и списки (объекты ListBox), комбинированные списки (объекты ComboBox) позволяют пользователю производить выбор из списка заранее определенных элементов. Однако у комбинированных списков есть одно существенное отличие от обычных: пользователь может не только выбрать готовое значение из списка, но и ввести свое собственное. Класс ComboBox наследует большинство своих возможностей от класса ListBox (который, в свою очередь, является производным от Control), однако в нем предусмотрены и собственные важные свойства, представленные в таблице 14.

Таблица 14. Свойства ComboBox









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.