1.00M
Категория: ПрограммированиеПрограммирование

13. Диалоговые окна в C#

1.

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

2.

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

3.

Имеются два вида диалоговых окон модальные
и немодальные.
Модальные(modal).
Пока открыто модальное диалоговое окно, пользователь не может
работать ни с каким другим окном программы.
Например, Open File – “Открытие файла”.
Немодальные(modeless).
Пока открыто немодальное диалоговое окно, работать с другими
окнами программы можно.
Например, Find and Replace – “Найти и заменить” редактора Microsoft
Word.

4.

В .NET существует несколько стандартных классов, которые позволяют
организовать диалог программы с пользователем.
Эти классы позволяют легко реализовать такие часто используемые
операции, как открытие и сохранение файла, выбор цвета, выбор шрифта и
т.д.
OpenFileDialog
- панель выбора файлов для открытия файлов
SaveFileDialog
- панель выбора файлов для сохранения на диске
ColorDialog
- панель для выбора цвета
FontDialog
- панель для выбора шрифта
PrintDialog
- панель для вывода документа на печать

5.

Общая схема применения стандартных
диалогов

6.

Порядок работы с любым стандартным диалогом может быть
следующим:
1. выбрать необходимый элемент и разместить его на форме;
2. определить как будет вызываться этот диалог.
Обычно это делается по щелчку мыши по кнопке (на форме должен
быть объект типа Button) или выбор определяем в каком-то пункте
меню (устанавливаем на форму объект типа MenuStrip);
3. затем создать обработчик событий для кнопки или пункта меню (в
зависимости от того, что выбрано в пункте 2).
Практически всегда обработчик событий будет иметь такой вид:

7.

Общая схема применения стандартных диалогов
void Имя_Click(object sender, EventArgs e)
{
.......................................
if(Диалог.ShowDialog()== DialogResult.OK)
{
// Выполнение каких-либо действий.
// Обычно — это применение выбранных в окне диалога параметров
}
}
Здесь
Имя_Click() — имя обработчика событий, задаётся системой автоматически;
Диалог — имя объекта нужного класса-диалога. Чаще используют то имя, что даст
система.
Например, объект OpenFileDialog получит по умолчанию имя openFileDialog1.

8.

Классы OpenFileDialog и SaveFileDialog
В среде Visual C# (Windows Fоrms) имеется возможность обращаться к
внешним файлам: отображать информацию из файла на форме, помещать
информацию с формы в файл и т.п.
Рассмотрим работу с текстовыми файлами в простейшем варианте – с
помощью специальных элементов управления.
OpenFileDialog - Панель выбора файлов для открытия файлов
SaveFileDialog - Панель выбора файлов для сохранения на диске

9.

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

10.

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

11.

Отображение диалога Открыть обеспечивает
метод ShowDialog.
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//вывод имени выбранного файла
MessageBox.Show(openFileDialog1.FileName);
}

12.

Title
Текст в заголовке окна. Если значение свойства не задано, то в
заголовке отображается текст Открыть
InitialDirectory
Каталог, содержимое которого отображается при появлении
диалога на экране
Filter
Свойство задает один или несколько фильтров файлов.
В окне отображаются только те файлы, имена которых
соответствуют выбранному фильтру. Фильтр задается строкой
вида Описание|Маска. Например, фильтр Текст|*.txt задает, что
в окне диалога следует отображать только текстовые файлы.
Фильтр может состоять из нескольких элементов, например:
Текст|*.txt|Все файлы|*.*

13.

FilterIndex
Если фильтр состоит из нескольких элементов,
например,
Текст|*.txt|Все файлы|*.*, то значение свойства задает
фильтр, который будет использоваться в момент
появления диалога на экране
FileName
RestoreDirectory
Имя выбранного пользователем файла
Признак необходимости отображать содержимое
каталога, указанного в свойстве InitialDirectory, при
каждом появлении окна. Если значение свойства
равно False, то при следующем появлении окна
отображается содержимое каталога, выбранного
пользователем в предыдущий раз

14.

Title
InitialDirectory
FileName
Filter

15.

Открытие файла с помощью компонента OpenFileDialog
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.SupportMultiDottedExtensions = true;
openFileDialog1.Filter = "Все файлы (*.*)|*.*|text files (*.txt)|*.txt|CSarp files (*.cs)|*.cs";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string s = null, t = "";
StreamReader read = File.OpenText(openFileDialog1.FileName);
while ((s = read.ReadLine()) != null)
{
t += s + "\r\n";
}
textBox1.Text = t;
read.Close();
}
}

16.

private void button3_Click(object sender, EventArgs e)
{
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files
(*.*)|*.*";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.Ok)
// получаем выбранный файл
string filename = openFileDialog1.FileName;
// читаем файл в строку
string fileText =System.IO.File.ReadAllText(filename,Encoding.Default);
textBox1.Text = fileText;
MessageBox.Show("Файл открыт");
}

17.

Компонент SaveFileDialog
Компонент позволяет пользователям
просматривать файловую систему и выбирать
файлы для сохранения.
Диалоговое окно возвращает путь и имя файла,
который пользователь выбрал в диалоговом
окне.
Тем не менее для фактического сохранения
файла на диск необходимо написать
специальный код.

18.

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

19.

Title
Текст в заголовке окна.
FileName
Полное имя файла, которое задал пользователь.
В общем случае оно образуется из имени каталога, содержимое которого отображается в
диалоговом окне, имени файла, которое пользователь ввел в поле Имя файла, и расширения,
заданного значением свойства DefaultExt
DefaultExt
Расширение файла по умолчанию.
Если пользователь в поле Имя файла не укажет расширение, то к имени
файла будет добавлено расширение (при условии, что значение свойства
AddExtension равно True), заданное значением этого свойства

20.

InitialDirectory
Каталог, содержимое которого отображается при появлении
диалога на экране
RestoreDirectory
Признак необходимости отображать содержимое каталога,
указанного в свойстве InitialDirectory, при каждом появлении
окна.
Если значение свойства равно False, то при следующем появлении окна
отображается содержимое каталога, выбранного пользователем в предыдущий
раз

21.

CheckFileExists
Признак необходимости проверки существования файла с заданным
именем.
Если значение свойства равно True и файл
с указанным именем уже существует, появляется окно запроса, в котором
пользователь может подтвердить необходимость замены (перезаписи)
существующего файла
CheckPathExists
Признак необходимости проверки существования каталога, в котором
следует сохранить файл.
Если указанного каталога
нет, то выводится информационное сообщение

22.

Filter
Свойство задает один или несколько фильтров файлов.
В окне отображаются только те файлы, имена которых соответствуют выбранному фильтру.
Фильтр задается строкой вида Описание|Маска.
Например,
фильтр Текст|*.txt задает, что в окне диалога следует отображать только текстовые
файлы.
Фильтр может состоять из нескольких элементов,
например: Текст|*.txt|Все файлы|*.*
FilterIndex
Если фильтр состоит из нескольких элементов, например,
Текст|*.txt|Все файлы|*.*, то значение свойства задает фильтр,
который будет использоваться в момент появления диалога на
экране

23.

Сохранить файл с помощью элемента
saveFileDialog
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "text files (*.txt)|*.txt";
if(saveFileDialog1.ShowDialog()== DialogResult.OK)
{
name_file=saveFileDialog1.FileName;
StreamWriter w = File.CreateText(name_file);
w.WriteLine(textBox1.Text);
w.Close();
}
}

24.

private void button2_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files
(*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.Cancel)
return;
// получаем выбранный файл
string filename = saveFileDialog1.FileName;
// сохраняем текст в файл
System.IO.File.WriteAllText(filename, textBox1.Text);
MessageBox.Show("Файл сохранен");
}

25.

Элемент управления ColorDialog
ColorDialog позволяет выбрать настройки
цвета

26.

Он делает возможным выбор цвета в диалоговом окне, работает
точно так же, как и остальные диалоговые компоненты:
выполняется метод ShowDialog(), открывается палитра цветов,
из которой нужно выбрать необходимый цвет.
Значение цвета помещается в свойство Color компонента,
после чего цвет может использоваться в дальнейшем.

27.

Среди свойств ColorDialog следует отметить следующие:
FullOpen: при значении true отображается диалоговое окно с
расширенными настройками для выбора цвета
SolidColorOnly: при значении true позволяет выбирать
только между однотонные оттенки цветов
Color: выбранный в диалоговом окне цвет

28.

1
2
3
4

29.

private void button1_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog()== DialogResult.OK)
{
textBox1.ForeColor = colorDialog1.Color;
}
}
private void button2_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog()== DialogResult.OK)
{
textBox1.BackColor = colorDialog1.Color;
}
}

30.

Элемент управления
FontDialog
Компонент находится в списке Dialogs
палитры компонентов, обеспечивает выбор
шрифта и его атрибутов (стиля, размера,
цвета и т. п.) в диалоговом режиме.
После выбора нужного шрифта его название
попадает в свойство компонента Font.
Компонент работает, как и предыдущий.

31.

FontDialog имеет ряд свойств, среди которых стоит отметить
следующие:
ShowColor: при значении true позволяет выбирать цвет
шрифта
Font: выбранный в диалоговом окне шрифт
Color: выбранный в диалоговом окне цвет шрифта
Для отображения диалогового окна используется
метод ShowDialog()

32.

private void button1_Click(object sender, EventArgs e)
{
fontDialog1.ShowColor = true;
fontDialog1.Font = textBox1.Font;
fontDialog1.Color = textBox1.ForeColor;
if (fontDialog1.ShowDialog() != DialogResult.Cancel)
{
textBox1.Font = fontDialog1.Font;
textBox1.ForeColor = fontDialog1.Color;
}}

33.

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

34.

Непосредственно печать документа
осуществляется с помощью
метода Print(), который вызывается из
экземпляра printDocument1.
Предварительно выводится диалоговое
окно печати.
private void button5_Click(object sender, EventArgs e)
{
if (printDialog1.ShowDialog()== DialogResult.OK)
{
printDocument1.Print();
}
}

35.

36.

Компонент WebBrowser
Компонент WebBrowser представляет собой окно небольшого браузера, в
котором можно отображать содержимое какой-нибудь html-страницы.
Документ html может находится на данной машине или на удалённой — это
не имеет особого значения.

37.

void MenuFileOpenClick(object sender, EventArgs e)
{
openFileDialog1.Filter = "HTML files
(*.html)|*.html";
if(openFileDialog1.ShowDialog()== DialogResult.OK)
{
nameStr=openFileDialog1.FileName;
webBrowser1.Url = new System.Url(nameStr);
}
}
English     Русский Правила