Суббота, 20.04.2024, 04:13
Приветствую Вас Гость | RSS

Лекции

Меню сайта
Форма входа
Категории раздела
ТАУ (Теория автоматического управления) [31]
лекции по ТАУ
Экология [151]
учебник
Бухгалтерский учет и налогообложение в строительстве [56]
Дементьев А.Ю. - Практическое пособие
Психология [104]
Пип
информатика [80]
с# Карли Ватсон
современные стулья [0]
новинки
Поиск

Главная » 2010 » Февраль » 11 » Использование управляющих элементов Windows Form
00:31
Использование управляющих элементов Windows Form
Использование
управляющих элементов
Windows Form
В последние годы Visual Basic получил широкое признание, поскольку он пре-
доставляет программистам удобные инструменты для создания весьма детализиро-
ванных интерфейсов с помощью программы разработки форм. Это обстоятельство,
дополненное очень легким для изучения языком программирования, формирует
наилучшую среду для быстрой разработки приложений. В частности, Visual Basic,
как и ряд других систем, предназначенных для быстрой разработки приложений,
например, Delphi, предоставляет набор управляющих элементов, которые разработ-
чик может использовать, чтобы быстро создать пользовательский интерфейс (user
interface, UI) для своего приложения.
В основе большинства Windows-приложений, написанных на Visual Basic, лежит
программа разработки форм. Процедура создания пользовательского интерфейса
заключается в том, чтобы переносить мышью различные управляющие элементы
из панели инструментов в создаваемую форму, размещая их в тех местах, в кото-
рых они должны, по вашему мнению, находиться при выполнении программы,
а затем с помощью двойного щелчка мышью на конкретном элементе добавить для
него обработчик событий. Управляющие элементы, предоставляемые компанией
Microsoft, наряду с подобными элементами, создаваемыми на заказ, можно при-
обрести по вполне разумным ценам. Они предоставляют программисту беспреце-
дентную возможность многократного использования тщательно выверенного
и протестированного кода, которым можно воспользоваться, щелкнув мышью.
То, что являлось основополагающим для Visual Basic, теперь, посредством Visual
Studio.NET, оказывается доступным и для тех, кто программирует на С#.
Большинство управляющих элементов, использовавшихся до появления .NET,
были — и до сих пор остаются — специальными СОМ-объектами, известными
под названием управляющих элементов ActiveX. Эти элементы обычно могут ис-
пользоваться в процессе как разработки, так и в выполнения приложения. У каж-
дого управляющего элемента имеется некоторый набор свойств, позволяющий
программисту выполнять определенные настройки, такие, как задание цвета фона,
заголовка и его местоположения в форме. Управляющие элементы, которые мы
будем рассматривать в настоящей главе, очень похожи на управляющие элементы
ActiveX, однако таковыми не являются — они представляют собой модули .NET.
Тем не менее, по-прежнему существует возможность использовать элементы,
которые были разработаны для предыдущих версий Visual Studio, хотя при этом
и возникает некоторое замедление выполнения кода, поскольку .NET приходится
288 Глава 13
использовать свою собственную оболочку для управляющих элементов. По вполне
очевидным причинам при разработке .NET компания Microsoft не стремилась к из-
быточному увеличению набора управляющих элементов и предусмотрела возмож-
ность использовать уже существующие элементы, несмотря на то, что вновь
создаваемые элементы представляют собой .NET-компоненты в чистом виде.
Эти модули .NET могут разрабатываться так, чтобы их можно было использо-
вать в любом языке программирования Visual Studio, и очень хочется надеться,
что развивающаяся индустрия создания компонентов проникнется этой идеей
и начнет производить чистые .NET-компоненты. Вопрос о том, каким образом
можно самостоятельно создавать управляющие элементы, будет рассмотрен в сле-
дующей главе.
Подробное объяснение того, что представляют собой
модули .NET, дается в главе 21. Рекомендуем обратиться к ней,
если вы хотите узнать о модулях больше.
В этой главе мы познакомимся с программой создания форм, особенно с тем,
каким образом можно использовать набор управляющих элементов, поставляемый
вместе с Visual Studio.NET. Представить все имеющиеся в наличии элементы —
задача в рамках настоящей книги неосуществимая, поэтому будут рассмотрены
только те из них, которые являются наиболее распространенными, начиная от над-
писей и текстовых окон и заканчивая средствами просмотра списков и линейками
состояний.
W i n d o w s F o rm Designer
Windows Form Designer (программа разработки форм для Windows) — это
основное средство, которое используется при создании пользователем собственно-
го интерфейса. Конечно, можно разработать форму и без Visual Studio.NET, но
создание интерфейса в Notepad может оказаться весьма болезненной процедурой.
Чтобы познакомимся со средой, которую мы
будем использовать, запустите Visual Studio.NET
и создайте новый проект С# Windows Application,
выбрав в меню File | New | Project. В появившемся
диалоговом окне щелкните мышью на Visual C#
Projects в дереве, расположенном с левой сторо-
ны, а затем в списке, находящемся справа, выбе-
рите Windows Application. На данном этапе просто
используйте имя, предложенное Visual Studio no
умолчанию, и нажмите ОК. Это должно привести
к появлению окна, очень похожего на изображен-
ное на рисунке слева.
Если вы уже знакомы с программой создания
форм в Visual Studio, то обратите внимание на
сходство — совершенно очевидно, что кто-то ре-
шил, что эта программа является победителем
и что ее следует использовать и в других языках
программирования Visual Studio. Если же вы не знакомы с программой создания
форм Visual Studio, то следует пройти последовательно по всем панелям управле-
ния, поскольку в этом диалоговом окне происходит не так уж много событий.
'
Использование управляющих элементов Windows Form 289
В центре экрана расположена форма, разработкой которой вы собираетесь
заняться. Есть возможность цеплять мышью и переносить в нее управляющие
элементы из панели с инструментами. На рисунке, приведенном выше, панель
инструментов находится в свернутом виде, однако если переместить курсор мыши
влево до конца экрана на вкладку Toolbox, то она раскроется. Теперь можно щелк-
нуть мышью на значке, расположенном справа вверху, и панель раскроется. Это
приведет к некоторой перекомпоновке рабочего пространства: панель инструмен-
тов расположится вверху и не будет налагаться на разрабатываемую форму. Подроб-
нее панель инструментов и то, что в ней содержится, будет рассматриваться ниже.
В свернутом виде на левой линейке прокрутки находится Server Explorer, пред-
ставленный в виде иконки, изображающей компьютеры, в самом верху вкладки
панели инструментов. Можно представить его как сокращенную версию Windows
Control Panel. Отсюда осуществляется поиск компьютеров в сети, добавление
и удаление соединения с базами данных и многое другое.
В правой части окна располагаются две панели управления. Справа вверху на-
ходятся Solution Explorer и окно просмотра классов. В Solution Explorer можно про-
сматривать все открытые проекты и привязанные к ним файлы. Щелкнув мышью
на вкладке, расположенной в нижней части Solution Explorer, можно активизиро-
вать Class Viewer — программу просмотра классов, позволяющую просматривать
все классы, которые используются в проектах, а также все классы, производными
которых они являются.
В правой нижней части экрана находится панель Properties (свойства), где со-
держатся все свойства выбранного элемента, что упрощает их использование и ре-
дактирование. Мы будем использовать эту панель в настоящей главе позже.
На этой панели также есть вкладка Dynamic Help (помощь в процессе работы).
Здесь будет выводиться краткая вспомогательная информация обо всех выбирае-
мых объектах и даже информация о коде в процессе его набора. Если в вашем
компьютере используется устаревший микропроцессор или не очень много опера-
тивной памяти, то мы рекомендуем удалить эту вкладку из панели. Кроме тех слу-
чаев, когда она действительно нужна, процедура поиска help-файлов существенно
замедляет работу.
Панель инструментов
Д t**L«bet
Познакомимся с панелью инструментов поближе. Переместите курсор
мыши на панель инструментов в левой части экрана и разверните ее на перед-
нем плане, щелкнув мышью на значке в верхнем правом углу панели.
Если вы случайно удалите панель инструментов, нажав
вместо этого X, то это можно исправить, либо выбрав
пункт Toolbox в меню View, либо нажав Ctrl-Alt-X.
На панели инструментов содержатся все управляющие элементы, которые
доступны разработчику, использующему .NET. В частности, предоставляется
возможность выбора элементов, наиболее важных для разработки Windows
Application. Если же вы решили создавать проект Web Forms, а не проект
Windows Application, то потребуется использовать иную панель инструментов.
Вы не ограничены набором, который представлен на панели, и можете изме-
нять его в соответствии со своими нуждами. Сейчас же мы сосредоточимся на
элементах, которые изначально находятся в панели инструментов, изображен-
ной на приведенном слева рисунке.
290 Глава 13
Управляющие элементы
Большинство управляющих элементов в .NET являются производными от клас-
са system.windows.Form.control. В нем определяются базовые функциональные
возможности управляющих элементов, и по этой причине многие свойства и со-
бытия являются идентичными. Многие из этих классов сами по себе являются
базовыми для других управляющих элементов, как в случае с классами Label
и TextBoxBase, изображенными на следующей диаграмме:
Некоторые управляющие элементы, которые называются
пользовательскими, являются производными от класса
system,windows.Form.userControi. Этот класс, в свою очередь,
является производным от класса control и предоставляет
все функциональные возможности, которые необходимы
для самостоятельного создания управляющих элементов.
Этот класс будет рассматриваться в главе 14.
Элементы, применяемые при разработке пользовательских
интерфейсов в web, являются производными
Класса System. Web.UI. Control.
Свойства
Все управляющие элементы обладают набором свойств, которые используются
для управления поведением этих элементов. Класс control, являющийся базовым
для большинства управляющих элементов, обладает свойствами, которые другие
элементы либо непосредственно наследуют, либо переопределяют для достижения
требуемого образа действий.
В едедующей ниже таблице приведены некоторые из наиболее распространен-
ных свойств класса control. Эти свойства будут присутствовать в большинстве
управляющих элементов, с которыми мы познакомимся в этой главе, и, таким об-
разом, нам не придется подробно останавливаться на их описании по второму разу,
за исключением тех случаев, когда для рассматриваемого управляющего элемента
поведение какого-либо свойства является отличным. Эта таблица не претендует на
то, чтобы быть исчерпывающей; если вы хотите познакомиться с полным перечнем
свойств данного класса, то вам следует обратиться в библиотеку MSDN.
Использование управляющих элементов Windows Form 291
Имя Режим доступа Описание
Anchor
BackColor
Bottom
Dock
Enabled
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
С помощью этого свойства можно определять, каким образом будет
вести себя управляющий элемент при изменении размеров своего
контейнера. Более подробно это свойство будет объяснено ниже.
Определяет цвет фона управляющего элемента.
Задавая значение этого свойства, можно определить расстояние
от верха окна до нижней части управляющего элемента.
Это не то же самое, что задание высоты управляющего элемента.
Позволяет делать управляющий элемент прилегающим к краям окна.
Более подробно это свойство будет объяснено ниже.
Присваивание свойству Enabled значения t r u e обычно означает, что
данный управляющий элемент в состоянии принимать информацию,
вводящуюся пользователем. Присваивание свойству Enabled
значения f a l s e обычно означает, что данный управляющий элемент
делать этого не в состоянии.
Определяет цвет управляющего элемента.
Определяет расстояние от верхнего до нижнего края управляющего
элемента.
Определяет положение левого края управляющего элемента
относительно левого края окна.
Имя управляющего элемента. По этому имени к управляющему,
элементу можно обращаться программным путем.
Управляющий элемент, от которого происходит данный
управляющий элемент.
Определяет положение правого края управляющего элемента
относительно правого края окна.
Определяет порядковый номер управляющего элемента
для данного контейнера.
Определяет, возможно ли осуществлять доступ к данному
управляющему элементу с помощью клавиши Tab.
Это свойство обычно не используется самим управляющим элементом;
оно включено в эту таблицу, поскольку в нем может храниться
информация о самом управляющем элементе. Если значение
этого свойства присваивается посредством программы разработки
Windows Form, то допустимым является только текстовая строка.
Определяет положение верхнего края управляющего элемента
относительно верхнего края окна.
Определяет, является ли управляющий элемент видимым
в процессе выполнения.
Определяет ширину управляющего элемента.
ForeColor
Height
Left
Name
Parent
Right
Tablndex
TabStop
Tag
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Тор
Visible
Width
Чтение/запись
Чтение/запись
Чтение/запись
Свойства Anchor и Dock
Эти два свойства оказываются особенно полезными при разработке формы.
Задача гарантировать, что окно не примет беспорядочный вид в том случае, если
пользователь изменит его размеры, оказывается далеко не тривиальной, и для ее
решения было написано бесчисленное количество строк кода. Множество про-
грамм решают эту проблему, налагая запрет на изменение размера окна, что, бе-
зусловно, является наиболее простым, но не самым лучшим способом справиться
с этой задачей. Свойства Anchor и Dock, которые появились вместе с .NET, позво-
ляют решить эту проблему, не написав ни единой строчки кода.
292 Глава 13
Свойство Anchor позволяет определить, каким образом должен вести себя
управляющий элемент в тот момент, когда пользователь изменяет размер окна.
Можно указать, что элемент должен изменить свои размеры, сохранив пропорции
внешних размеров, или оставить размеры неизменными, сохранив свою позицию
относительно границ окна.
Свойство Dock связано со свойством Anchor. Оно может быть использовано для
того, что бы управляющий элемент прилегал к краю своего контейнера. В том слу-
чае, если пользователь изменит размеры окна, элемент все равно останется при-
легающим к его краю. Если, например, задано, что управляющий элемент должен
прилегать к нижней границе окна, то он будет всегда изменять свое местоположе-
ние так, чтобы занимать нижнюю часть экрана независимо от размеров окна. Раз-
мер же управляющего элемента изменяться при этом не будет — он всегда будет
прилегать к соответствующему краю окна.
Для того чтобы правильно использовать свойство Anchor, внимательно изучите
пример текстового окна, приведенный ниже в этой главе.
События
Когда пользователь нажимает на кнопку или щелкает по ней мышью, то вам
как программисту-разработчику данного приложения, хотелось бы получить ин-
формацию о том, что это произошло. С этой целью управляющие элементы ис-
пользуют события. Класс control определяет несколько событий, являющихся
общими для всех элементов, которые будут использоваться в настоящей главе.
Эти события описываются в приведенной ниже таблице, которая представляет со-
бой выборку наиболее распространенных событий; полный список можно найти
в библиотеке MSDN:
Имя Описание
Click Наступает в том случае, когда происходит щелчок мышью на управляющем элементе.
Это событие наступает также и в том случае, если пользователь нажимает
клавишу Enter.
Doubleclick Наступает в том случае, когда на управляющем элементе происходит двукратный
щелчок мышью. Использование события c l i c k для некоторых управляющих элементов,
таких как управляющий элемент Button, означает, что событие Doubleclick никогда
не будет вызываться.
DragDrop Наступает, когда завершается процедура переноса мышью, другими словами,
в тот момент, когда объект перенесен мышью на управляющий элемент и пользователь
отпускает кнопку мыши.
DragEnter Возникает в тот момент, когда переносимый мышью объект оказывается внутри границ
управляющего элемента.
DragLeave Возникает в тот момент, когда переносимый мышью объект оказывается вне границ
управляющего элемента.
DragOver Возникает в тот момент, когда переносимый мышью объект накрывает
управляющий элемент.
KeyDown Наступает в момент нажатия клавиши, в том случае, если управляющий элемент
находится в фокусе. Это событие всегда предшествует событиям Keypress и KeyUp.
Keypress Наступает в момент нажатия клавиши в том случае, если управляющий элемент
находится в фокусе. Это событие всегда возникает после события KeyDown и перед
событием KeyUp. Разница между KeyDown и Keypress заключается в том, KeyDown
передает код нажатой клавиши, в то время как Keypress передает значение типа char,
соответствующее нажатой клавише.
Использование управляющих элементов Windows Form 293
Продолжение таблицы
Имя Описание
KeyUp Наступает в тот момент, когда клавиша отпускается, в том случае если
управляющий элемент находится в фокусе. Это событие всегда возникает после
событий KeyDown и KeyPress.
GotFocus Возникает в тот момент, когда управляющий элемент оказывается в фокусе.
Не рекомендуется использовать это событие для выполнения проверки допустимости
управляющих элементов. Для этих целей следует использовать события Validating
и Validated.
LostFocus Возникает в тот момент, когда управляющий элемент оказывается не в фокусе.
Не рекомендуется использовать это событие для выполнения проверки допустимости
управляющих элементов. Для этих целей следует использовать события Validating
и Validated.
MouseDown Возникает в тот момент, когда курсор мыши находится на управляющем элементе,
а кнопка мыши находится в нажатом состоянии. Это не то же самое, что событие Click,
поскольку событие MouseDown возникает, когда кнопка мыши нажата и до того момента,
когда она будет отпущена.
MoseMove Возникает постоянно по мере того, как курсор мыши передвигается
по управляющему элементу.
Mouseup Возникает в тот момент, когда курсор мыши находится на управляющем элементе,
а кнопка мыши отпущена.
Paint Возникает в момент, когда управляющий элемент рисуется на экране.
Validated Это событие генерируется, когда управляющий элемент, свойство которого
CausesValidation (требует проверки допустимости) равно t r u e , должен оказаться
в фокусе. Оно наступает, после того как завершается событие Validating,
и свидетельствует о том, что проверка допустимости завершена.
Validating Это событие генерируется, когда управляющий элемент, свойство которого
CausesValidation равно t r u e , должен оказаться в фокусе. Обратите внимание на то,
что управляющий элемент, для которого будет выполняться проверка допустимости,—
это элемент, теряющий фокус, а не получающий его.
Большинство этих событий встретятся в примерах, которые будут приводиться
в настоящей главе.
Теперь следует перейти к рассмотрению собственно управляющих элементов,
и начнем мы с элемента, который уже встречался в предыдущих главах,— с эле-
мента Button (кнопка).
Управляющий элемент Button
В Visual Studio.NET есть три типа кнопок. Переключатели и окна с выбором
также представляют собой кнопки. По этой причине класс Button не является про-
изводным непосредственно от класса control, он является производным от класса
ButtonBase, который, в свою очередь, является производным от класса control.
В данном разделе мы сосредоточим внимание на элементе Button, а к переключа-
телям и окнам для выбора вернемся ниже в настоящей главе.
Управляющий элемент в виде кнопки присутствует практически во всех диало-
гах Windows. Кнопки используются прежде всего для выполнения задач следующих
трех видов:
• Для завершения диалога с сохранением состояния
(например, кнопки ОК и Cancel).
294 Глава 13
• Для выполнения каких-либо действий над данными,
введенными в процессе диалога (например, при нажатии
кнопки Search (поиск) после ввода некоторого критерия поиска).
• Для открытия другого диалога или приложения
(например, кнопка Help (помощь)).
Работать со управляющими элементами, представляющими собой кнопки, ока-
зывается очень просто. Вся работа заключается в добавлении элемента к форме
и двойном щелчке мышью на нем для ввода кода, обрабатывающего событие
click,— этого оказывается вполне достаточно для большинства приложений,
с которыми вы будете работать.
Рассмотрение некоторых наиболее часто использующихся свойств и событий
данного элемента поможет получить представление о задачах, которые могут быть
решены с его помощью. Потом мы создадим небольшой пример, который позволит
продемонстрировать некоторые основные свойства и события, используемые при
работе с кнопками.
Свойства управляющего элемента Button
Свойства в качестве членов самой кнопки будут перечисляться даже в том слу-
чае, если технически они описываются в базовом классе ButtonBase. Ниже приво-
дится описание только наиболее часто употребляемых свойств. Полный список
можно найти в MSDN:
Имя Режим доступа Описание
Flatstyle Чтение/запись Позволяет изменять стиль кнопки. Если задать стиль Popup,
то кнопка будет выглядеть плоской до тех пор, пока пользователь
не наведет на нее курсор мыши. В этот момент кнопка примет
свой обычный объемный вид.
Enabled Чтение/запись Описание этого свойства приводится здесь, даже несмотря на то,
что оно является производным от класса Control, поскольку это
очень важное свойство для работы с кнопками. Если присвоить
свойству Enabled значение false, то это будет означать,
что изображение кнопки становится более темным
и при нажатии на нее ничего не происходит.
image Чтение/запись Позволяет задать рисунок (в двоичном виде, в виде иконки и т. д),
который будет изображаться на кнопке.
imageAlign Чтение/запись Позволяет определять местоположение рисунка, размещаемого
на кнопке.
События управляющего элемента Button
Наиболее часто используемым событием для кнопок является событие click.
Это событие наступает, когда пользователь щелкает мышью на кнопке, что озна-
чает, что он нажимает левую кнопку мыши и отпускает ее, пока курсор мыши на-
ходится на данном управляющем элементе. Отсюда, в частности, следует, что в том
случае, если сначала будет нажата левая кнопка мыши, а затем курсор мыши
будет уведен со управляющего элемента до того, как она будет отпущена, то это не
приведет к наступлению события click. Кроме того, событие click возникает,
если данная кнопка находится в фокусе, а пользователь нажимает клавишу Enter.
Использование управляющих элементов Windows Form 295
Если в вашей форме используется какая-либо кнопка, то вы должны непременно
обрабатывать это событие.
В примере будет создан диалог, в котором будут использоваться три кнопки.
Первые две кнопки будут изменять используемый язык с английского на датский
и обратно (можно использовать любой другой язык по своему усмотрению). По-
следняя кнопка будет использоваться для завершения диалога.
Практикум: тестирование управляющего элемента Button
1. Откройте Visual Studio.NET и создайте новое приложение С#
Windows Application. Назовите это приложение ButtonTest.
" '"•''•''' rJ^
Ыг£ nglbh j ; btnDanish-
" " ' ' ЫпОК
О
a
2. Разверните Toolbox и выполните
три двукратных щелчка мышью
на управляющем элементе Button.
Затем передвиньте кнопки
и установите соответствующий
размер формы, как показано
на рисунке справа.
3. Щелкните правой кнопкой мыши
на Properties. Затем измените
свойство Name для всех трех кнопок, как показано на рисунке, выбрав
поле редактирования свойства Name на панели управления Properties
и набрав необходимый текст.
4. Измените свойство Text каждой из трех кнопок на соответствующий
текст за исключением первых трех букв (btn).
5. Перед текстом необходимо вывести соответствующий флажок, чтобы
было понятно, о каком языке идет речь. Выберите кнопку English
и найдите свойство image. Щелкните мышью на (...) справа от него,
для того чтобы перейти в диалоговое окно, в котором можно
выбирать рисунки. Иконки с различными флагами поставляются
вместе с Visual Studio.NET. Если вы инсталлировали Visual Studio.NET
на стандартное место (имеется в виду англоязычная версия), то они
ДОЛЖНЫ располагаться В директории C:\Program Files\Microsoft
Visual Studio.NET\Common7\Graphics\icons\Flags. Выберите ИКОНКу
figuk.ico. Повторите ту же самую процедуру для кнопки Danish,
выбрав на этот раз файл figden.ico (по желанию можно выбрать
любой другой флаг из имеющихся в данной директории).
6. На данный момент текст и иконка, расположенные на кнопке,
накладываются друг на друга, поэтому необходимо изменить
местоположение иконки. Для обеих кнопок — English и Danish —
измените значение СВОЙСТВа ImageAlign на MiddleLeft.
7. В этот момент можно скорректировать ширину кнопок, с тем чтобы
текст не начинался непосредственно в том месте, где заканчивается
изображение. Для этого последовательно выберите каждую кнопку
и растяните ее правый край.
8. В заключение щелкните мышью на форме и измените свойство Text
на "Do you speak English?" (Говорите ли вы по-английски?).
296 Глава 13
?Ь\ШЩ
• & Danish J
Ш'. .* '!• ! * • •
1
_ ^ P .
Вот и все, что потребовалось для создания пользователь-
ского интерфейса нашего диалога. Должно получиться нечто,
выглядящее приблизительно так, как показано на рисунке
слева.
Теперь можно добавить в диалоговое окно обработчики
событий. Щелкните мышью два раза на кнопке English —
вы попадете непосредственно на обработчик события, click
является событием, используемым для кнопок по умолча-
нию; это именно то событие, которое создается при двойном
щелчке мышью на кнопке. У других управляющих элементов по умолчанию ис-
пользуются другие события.
Добавление обработчиков событий
При двойном щелчке мышью на управляющем элементе в коде, который лежит
в основе данной формы, происходят две вещи. Во-первых, в методе initialize-
Component () создается подписка на событие:
this.btnEnglish.Click += new System.EventHandler{this.btnEnglish_Click);
Если возникает необходимость подписаться на событие, отличное от события,
по умолчанию, то придется заносить соответствующий код самостоятельно, чем мы
и будем заниматься на протяжении всей оставшейся главы. Представляется важ-
ным помнить, что код метода initiaiizecomponento перезаписывается каждый
раз, когда вы переключаетесь из режима разработки и переходите к коду. По этой
причине никогда не выполняйте подписку в этом методе. Вместо этого следует ис-
пользовать конструктор данного класса.
Второе, что происходит,— это добавляется собственно обработчик события:
private void btnEnglish__Click(object sender, System.EventArgs e)
this,Text = "Do you speak English?"
1
Имя метода образуется посредством объединения имени управляющего элемента,
символа подчеркивания и имени обрабатываемого события. Первый параметр —
object sender — содержит выбранный управляющий элемент. В данном примере,
это всегда будет элемент, который входит в имя метода, хотя в некоторых других
случаях несколько управляющих элементов могут использовать один и тот же
метод для обработки события, и в таком случае по значению этого параметра мож-
но точно определить, какой именно элемент вызывает данный метод. В примере
с текстовым окном, приведенном в этой главе ниже, демонстрируется, каким обра-
зом можно использовать один и тот же метод одновременно для нескольких управ-
ляющих элементов. Во втором параметре — system. Event Args e — содержится
информация о том, что именно произошло. В данном случае нет необходимости ис-
пользовать информацию, хранящуюся в обоих параметрах.
Ключевое слово this обозначает текущий экземпляр данного класса. Посколь-
ку класс, с которым мы работаем в настоящий момент, представлен именно таким
экземпляром, можно получать доступ к его свойствам и управляющим элементам
с помощью этого слова. Задавая значение свойства Text, используемого с ключе-
вым словом this, как это делается в приведенном выше коде, мы, на самом деле,
задаем значение свойства Text текущего экземпляра формы.
Использование управляющих элементов Windows Form 297
Вернитесь в Form Designer и щелкните мышью два раза на кнопке Danish для
перехода к обработчику событий для этой кнопки. Вот его код:
public void btnDanish_Click(object sender, System.EventArgs e)
{ .............. .... ... . .. . . . . _ . . . ^
this.Text = "Taler du Dansk?*;
Этот метод идентичен методу btnEngiish_ciick за исключением текста на датском
языке. Обработчик событий для кнопки ОК добавляется точно таким же способом,
как и два предыдущих. Однако код в этом случае будет немного отличаться:
public void btnOK_Click(object sender, System.EventArgs e)
{
Application.Exit();
С помощью этого метода завершается
выполнение приложения. Откомпилируйте
его, запустите и понажимайте на кнопки.
Картина будет похожей на рисунок справа.
Управляющие элементы
Label и LinkLabel
Управляющий элемент Label является наиболее употребляемым. Он есть прак-
тически во всех приложениях Windows. Label — простой элемент, предназначен-
ный для единственной цели: он представляет собой надпись или короткую
рекомендацию, объясняющую что-либо пользователю данной формы.
Стандартно Visual Studio.NET поставляется с двумя разновидностями надписей,
представленными двумя различными способами:
• Label — стандартная надпись в Windows
• LinkLabel — надпись, похожая на стандартную
(и являющаяся производной от нее), но представленная
в виде интернет-ссылки (гиперссылки)
Эти два элемента находятся в верхней части
панели управления вкладки Windows Form.
На рисунке слева показана форма, в которую
были перенесены оба элемента типа Label,
с тем чтобы продемонстрировать внешние
отличия между названными элементами.
Если вы программировали на Visual Basic, то, вероятно,
обращали внимание, что для задания выводимого текста
используется свойство Text, а не caption. Далее вы узнаете,
что во всех присущих .NET управляющих элементах
для задания основного текста используется именно
Свойство Text. До появления .NET Свойства Caption U Text
были взаимозаменяемыми.
298 Глава 13
Обычно для стандартного элемента Label не требуется никакого кода в обра-
ботчике событий. Однако для LinkLabel некоторый дополнительный код необхо-
дим, если вы хотите предоставить пользователю возможность переходить на
указанную в тексте web-страницу.
Управляющий элемент Label обладает на удивление большим количеством
свойств, которые можно задавать. Большинство из них являются производными
от класса control, но есть несколько новых. В следующей таблице приведены
наиболее распространенные их них. Если не утверждается противное, эти свойства
Существуют у Обоих Элементов — Label И LinkLabel.
Имя Режим доступа Описание
Позволяет определять стиль обрамления вокруг Label.
По умолчанию обрамление отсутствует.
(Только для LinkLabel.) Определяет цвет, принимаемый
LinkLabel после нажатия на него пользователем.
Определяет внешнее представление управляющего
элемента. Если присвоить этому свойству значение Popup,
то управляющий элемент будет изображаться плоским
до тех пор, пока пользователь не наведет на него курсор
мыши. После этого он несколько приподнимется.
Это свойство позволяет задавать единственный рисунок
(двоичный, икЪнку и т. д.), выводимый на тексте.
Определяет место, где в Label будет располагаться
рисунок, заданный в свойстве image.
(Только для LinkLabel.) Позволяет задавать часть текста,
которая будет выводиться в качестве ссылки.
(Только для LinkLabel.) Определяет цвет ссылки.
(Только для LinkLabel.) Управляющий элемент LinkLabel
может содержать более одной ссылки. Данное свойство
позволяет находить требуемую ссылку. Этот управляющий
элемент позволяет отслеживать ссылки, выведенные в тексте.
(Только для LinkLabel.) Возвращает значение,
которое указывает, посещалась данная ссылка или нет.
Позволяет задавать выводимый текст.
Определяет, каким образом текст располагается
в управляющем элементе.
BorderStyle
DisabledLinkColor
FlatStyle
Чтение/запись
Чтение/запись
Чтение/запись
Image
ImageAlign
LinkArea
LinkColor
Links
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Только чтение
LinkVisited
Text
TextAlign
Только чтение
Чтение/запись
Чтение/запись
Управляющий элемент Textbox
Управляющие элементы типа Textbox (текстовое окно) следует использовать
в тех случаях, когда пользователь вводит текст, о котором ничего не известно на
момент разработки (например имя пользователя). Основная задача текстовых
окон — позволить пользователю вводить текст, но, поскольку допускается ввод
произвольных символов, можно заставить пользователя вводить, например только
цифры.
Стандартно .NET поставляется с двумя основными управляющими элементами —
Textbox и RichTextbox (RichTextbox будет обсуждаться в данной главе ниже). Оба
элемента являются производными от базового класса TextBoxBase, который,
в свою очередь, является производным от класса control.
Использование управляющих элементов Windows Form 299
Имя
Класс TextBoxBase обеспечивает базовые функциональные возможности по ра-
боте с текстом в текстовом окне, такие как выбор текста, вырезание и вставка
текста, а также широкий спектр событий. Рассмотрим более простой элемент —
Textbox. Мы создадим пример, демонстрирующий основные свойства Textbox, и на
его ОСНОВе Продемонстрируем управляющий Элемент RichTextbox.
Свойства управляющего элемента Textbox
У данного элемента имеется очень много свойств, поэтому в следующий пере-
чень включены только наиболее распространенные из них.
Режим доступа Описание
Causesvalidation Чтение/запись
CharacterCasing
MaxLength
Multiline
PasswordChar
Readonly
ScrollBars
SelectedText
SelectionLength
SelectionStart
Wordwrap
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Чтение/запись
Когда элемент, у которого данному свойству присвоено
значение true, должен оказаться в фокусе, то генерируются
два события — Validating и Validated. Их можно
обработать с целью проверки допустимости данных,
введенных в управляющий элемент, который выходит
из фокуса. Это может привести к тому, что этот элемент
никогда не окажется в фокусе. Соответствующие события
будут обсуждаться ниже.
Позволяет определить, производится ли изменение регистра
вводимых символов. Это свойство может иметь одно из трех
значений:
• Lower — весь вводимый в окно текст переводится
в нижний регистр.
• Normal — текст остается без изменений.
• Upper — весь вводимый в окно текст переводится
в верхний регистр.
Значение, которое определяет максимальную длину текста
в Textbox, выраженную в символах. Если длина ограничена
только объемом имеющейся в наличии памяти, данному
свойству следует присвоить значение, равное нулю.
Указывает, допускает ли данный управляющий элемент
наличие нескольких строк. Многострочный элемент позволяет
одновременный вывод нескольких строк текста.
Указывает, что текст, находящийся в однострочном окне,
должен заменяться на "секретные" символы. Если свойство
Multiline имеет значение, равное true, то это свойство
игнорируется.
Логическое значение, указывающее на то, что текст может
использоваться в режиме "только чтение".
Позволяет указать, что состоящее из нескольких строк окно
должно выводиться с линейками прокрутки.
Определяет выбранный в окне текст.
Определяет число символов в выбранном тексте.
Если присвоенное этому свойству значение превышает
количество символов в тексте, оно будет изменено
на разность между количеством символов в тексте
и значением свойства SelectionStart.
Определяет начало выделенного текста в текстовом окне.
Определяет, необходимо ли в многострочном окне
автоматически сворачивать слова в том случае, если
длина строки превышает ширину управляющего элемента.
300 Глава 13
События управляющего злеиента Textbox
Тщательная проверка допустимости текста в управляющих элементах типа
Textbox позволяет превратить обозленных пользователей в довольных.
Вас, вероятно, не раз раздражала ситуация, когда в процессе диалога содержи-
мое окон проверяется на допустимость только после того, как вы нажимаете ОК.
При таком подходе вы обычно получаете окно с сообщением о том, что данные,
введенные в "Textbox номер три", некорректны. После этого вы будете нажимать
кнопку ОК до тех пор, пока все данные не будут исправлены. Очевидно, что это не
самый лучший способ проверки допустимости данных. Итак, что же можно предло-
жить взамен?
Ответ заключается в обработке событий, связанных с проверкой допустимости,
которые предоставляются управляющим элементом Textbox. Если требуется га-
рантированно не допускать ввода неверных символов или если нужно, чтобы
вводимое в текстовое окно значение находилось в допустимом диапазоне, то необ-
ходимо указать пользователю этого управляющего эле
Категория: информатика | Просмотров: 2736 | Добавил: basic | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Календарь
«  Февраль 2010  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

krutoto.ucoz.ru
Бесплатный конструктор сайтов - uCoz