Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 206

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 200 201 202 203 204 205 < 206 > 207 208 209 210 211 212 .. 320 >> Следующая

Таблица 10.24. перечисления DockStyle
Значение Описание
Bottom Элемент управления займет место у нижнего края формы
Элемент управления будет пристыкован ко всем формы сразу и, такиг
образом, займет всю клиентскую область формы
Left Элемент управления займет место у левого края формы
None Элемент не будет пристыкован ни к одному из краев
Right Элемент управления займет место у правого края формы
Top Элемент управления займет место у верхнего края формы
Если нам потребуется обеспечить стыковку элемента управления с левым -ем формы, мы можем использовать следующий код:
// Этот элемент управления всегда будет занимать место у левого края формы, независимо
// от ее размеров:
myButton. Dock = DockStyle.Left;
То, как эта кнопка будет Выглядеть на форме, представлено на рис. 10.26.
і ЙЛікІшг ing (,¦»¦I Docking) Cmilrah ^fSlJSJ'
finchor Value Dock Value
Anchor: TopLelt
Dock: Left
Рис. 10.26. Кнопка пристыкована к левому краю формы
Чтобы можно было наглядно продемонстрировать, как отражаются на те управления разные значения свойств Dock и Anchor, мы приготовили специальное приложение AnchorLngControls (его можно найти в подкаталоге Chapter 10). Окно этого приложения представлено на рис. 10.27.
510 Глава 10 • Элементы управления
It * Anchoring(,J<i<JL)iJcl(imj>(.oi.!r»>l> '
: Anchor Value Dock Value .
Top
, Left
BUttOfTj
IB Right
None Anchor; Top, Left
¦ rooLeft U acte HgK
TopfUc«
Botttmteft
BottonAight
Рис. 10.27. Приложение для иллюстрации возможностей стыковки и закрепления
Создание пользовательских диалоговых окон
Теперь, когда мы вооружены знаниями о наиболее важных элементах управления, определенных в пространстве имен System .Windows, Forms, настало время обратиться к созданию пользовательских диалоговых окон. Практически все элементы управления, которыеприменяютсявобычныхформах,можноиспользоваты!вдиалоговыхокнах.
Отдельный класс Dialog в .NETне предусмотрен. Диалоговое окно - это форма, обладающая некоторыми специальными характеристиками. Первая отличительная черта большинства диалоговых окон — то, что их размер изменять нельзя. Кроме того, в диалоговых окнах обычно не используются элементы управления, помещаемые в верхнюю часть обычных форм: ControlBox, MinimizeBox и MaximizeBox. Можно сказать, что для пользователя диалоговое окно в противоположность обычному является практически неизменяемым.
Для открытия модального диалогового окна (это такое диалоговое окно, которое нужно обязательно закрыть перед возвращением к исходной форме) используется метод ShowDia log(). Предположим, что диалоговое окно в нашем приложении открывается при щелчке пользователем на пункте в меню. Код для открытия диалогового окна может выглядеть следующим образом:
// Открываем модальное диалоговое окно
protected void mnuModalBox_Click (object sender. System.EventArgs e)
{
SomeCuStomForm myForm = new SomeCustomForm():
// To же самое можно сделать и в конструкторе SomeCuStomForm myForm.BorderStyIe - FormBorderStyle.FixedDialog; myForm.ControlBox = false; myForm.MinimizeBox = false; myForm, MaximizeBox = false;
II Передаем как ссылку родительской форме myForm.ShowDialog(this):
DoSomeUork()і
S
Обратите внимание, что за вызовом метода ShowDiaЇog() у нас сразу следует вспомогательная функция DoSomeWork(). Модальность формы определяет именно метод
Создание пользовательских диалоговых окон 511
ShowUi а 1 og (): при использовании нашего кода весь ход выполнения программы будет приостановлен вплоть до того момента, пока ShowDia'logu не вернет соответствующее значение. Для пользователя это значит, что ему придется закрыть диалоговое окно, прежде чем он сможет выполнить какие-либо операции на главной форме. Если для нашего диалогового окна модальность не нужна (то есть в фокус смогут попадать как диалоговое окно, так и главная форма), достаточно вместо SnwDiа 1 од') использовать метод Showf). Выглядеть это может так: // Открываем ненодальное диалоговое окно
protected void mnuShowMyD1g_Click (object sender. System.EventArgs e)
{
SomeCustomForm myForm = new SomeCustomForm(): myForm.BorderStyle = FormBorderStyle.FixedDialog; [tiyForra. Control Box = false; myForm.Mini mizeBox = false; myForm.MaximiieBox - false; myForm. SncwO:
DoSoneWorkO;
)
В этом случае немедленно после открытия диалогового окна начнется выполнение DoSomeWork () — безо всяких приостановок.
Пример использования диалогового окна в приложении
Спроектируем приложение, в котором будет использоваться пользовательское диалоговое окно. Приложение будет несложным: главная форма, имеющая меню с единственным пунктом (рис. 10.28). При активации этого пункта откроется модальное диалоговое окно (рис. 10.29).
-1?IxI
Рис. 10.28. Главная форма приложения
| Hello there from thecHu dialog
Cancel
Рис. 10.29. Модальное диалоговое окно
512 Глава 10 • Элементы управления
В диалоговом окне пользователь может ввести текст, который при нажатии кнопки (Ж будет выведен на форме (рис. 10.30).
Предыдущая << 1 .. 200 201 202 203 204 205 < 206 > 207 208 209 210 211 212 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100