Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Стандартные диалоги

Многодокументный интерфейс Multiple Document Interface

Многодокументный интерфейс (Multiple Document Interface, MDI) используется для приложений, которые могут в клиентской области основной формы показывать много экземпляров одного или разных типов форм, которые показывают разное содержание (документы). Например, редактор текстов, который одновременно показывает в разных дочерних окнах содержание разных документов. Однако следует понимать, что под документом понимается не только текст, но и информация любого другого типа (изображение, таблицы данных, видео и т.п.). Используемые дочерние формы не выходят за границы основной формы приложения.

Для организации MDI интерфейса следует в основной форме приложения задать свойству IsMDIContaner значение true. А для того, чтобы дочерние окна вели себя соответствующим образом (открывались в родительском окне), у них нужно присвоить свойству MdiParent ссылку на данную родительскую форму. Например, в методе основной формы можно создать метод, который будет показывать дочерние формы:

private void ShowMdiChild(Form childForm) {

childForm.MdiParent = this; // this – основная форма

childForm.Show();

}

В основной форме может быть открыто одновременно много дочерних форм. Свойство формы ActiveMdiChild ссылается на окно, с которым работает в данный момент пользователь. Используя данное свойство можно получить все данные связанные с этой формой. Дочерние формы можно упорядочивать, вызывая метод LayoutMdi(), который в качестве параметра принимает значения перечисления MdiLayout. Возможными значениями данного перечисления являются: Cascade (упорядочит каскадом), TileHorizontal (упорядочить горизонтально) и TileVertical (упорядочить вертикально).

В системе разработки Visual Studio имеется специальный вид форм, у которого уже задано не только свойство IsMDIContaner = true, но и созданы меню и инструментальная полоса для выполнения стандартных операция с дочерними формами.

 

В библиотеке FCL имеется набор стандартных модальных форм, позволяющие выполнять стандартные действия:

Ÿ OpenFileDialog – диалог выбора и открытия файла для считывания данных;

Ÿ SaveFileDialog – диалог выбора и открытия файла для записыи данных;

Ÿ PrintDialog – диалог вывода на печать;

Ÿ PrintPreviewDialog – диалог предварительный просмотр результата печати;

Ÿ ColorDialog – диалог выбора цвета;

Ÿ FontDialog – диалог выбора шрифта;

Ÿ FolderBrowserDialog – диалог работы с каталогами.

 

Все эти формы поддерживаются стандартными окнами операционной системы. Логика работы с этими формами однотипная и состоит в следующем:

Ÿ описание и создание объекта нужного класса форм;

Ÿ задание свойств данного объекта для его визуального представления и логики работы;

Ÿ вызов у данного объекта метода ShowDialog() и сравнение полученного результата со значением DialogResult.OK;

Ÿ если завершение успешное, то значения нужных свойств диалога сохраняются в переменных приложения.

 

Например, диалог OpenFileDialog имеет следующие основные свойства:

Ÿ Title – заголовок диалоговой формы;

Ÿ Filter – “описание1 | фильтр1 | описание2 | фильтр2”; например: "txt files (*.txt) | *.txt | All files (*.*) | *.*"

Ÿ FilterIndex – индекс фильтра, используемый по умолчанию;

Ÿ InitialDirectory – начальная папка для просмотра;

Ÿ FileName – имя выбранного файла (результат выбора).

 

Ниже показан пример использования диалога OpenFileDialog для считывания данных из выбранного файла:

 

string input;

OpenFileDialog oFileDlg = new OpenFileDialog();

oFileDlg.InitialDirectory = "c:\\";

oFileDlg.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";

if (oFileDlg.ShowDialog() == DialogResult.OK){

// чтение данных из выбранного файла

 

StreamReader sr = File.OpenText(oFileDlg.FileName);

input = sr.ReadToEnd();

}

 

Вид созданной диалоговой формы показан на рис. 8.5.

Кроме перечисленных стандартных диалогов также часто используется простое модальное окно сообщений (message box), которое можно показать на экране с помощью перегруженного метода Show() (12 вариантов метода) статического класса System.Windows.Forms.MessageBox. Как и обычное модальная форма, данное окно сообщений возвращает результат типа DialogResult.

 

Рис. 8.5. Диалоговое окно открытия файла.

 

Например, один из методов Show имеет следующую сигнатуру:

DialogResult Show(string, string, MessageBoxButtons, MessageBoxIcon, MessageBoxDefaultButton), где

Ÿ перечисление MessageBoxButtons – это комбинации кнопок на форме, таких как Ok, OkCancel, RetryCancel, Yes, No, YesNoCancel, AbortRetryIgnore.

Ÿ перечисление MessageBoxIcon – это иконка, выводимая в форме, такая как: None (нет), Hand (рука), Question (?), Exclamation (!), Asterisk (*), Stop (крест), Error (крест), Warning (!), Information (i);

Ÿ перечисление MessageBoxDefaultButton – номер кнопки, который будет выбран по умолчанию; допустимые значения: Button1, Button2, Button3.

 

Ниже приведен пример вызова окна сообщений с данным набором параметров:

MessageBox.Show("Продолжать выполнение программы?", "Редактор текста", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question,

MessageBoxDefaultButton.Button2);

 

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

Рис. 8.6. Простое диалоговое окно сообщений.

 

<== предыдущая лекция | следующая лекция ==>
Модальные и немодальные формы | 
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 823; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.