Similar presentations:
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.
Элемент управления OpenFileDialog10.
Компонент позволяет пользователям просматривать папки накомпьютере или на любом компьютере в сети и выбрать один или
несколько файлов для открытия.
Диалоговое окно возвращает путь и имя файла, который
пользователь выбрал в диалоговом окне.
Никаких ограничений на тип файла нет, пользователь может
выбрать любой файл.
Объект 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.
TitleInitialDirectory
FileName
Filter
15.
Открытие файла с помощью компонента OpenFileDialogprivate 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.
Элемент управления ColorDialogColorDialog позволяет выбрать настройки
цвета
26.
Он делает возможным выбор цвета в диалоговом окне, работаетточно так же, как и остальные диалоговые компоненты:
выполняется метод ShowDialog(), открывается палитра цветов,
из которой нужно выбрать необходимый цвет.
Значение цвета помещается в свойство Color компонента,
после чего цвет может использоваться в дальнейшем.
27.
Среди свойств ColorDialog следует отметить следующие:FullOpen: при значении true отображается диалоговое окно с
расширенными настройками для выбора цвета
SolidColorOnly: при значении true позволяет выбирать
только между однотонные оттенки цветов
Color: выбранный в диалоговом окне цвет
28.
12
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.
Элемент управления PrintDialogC помощью этого элемента можно открыть
диалоговое окно настройки печати, где надо
выбрать принтер, а также страницы, которые
следует печатать, и установить некоторые
свойства печати.
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);
}
}