1 / 20

Высокоуровневые методы информатики и программирования Лекция 2 5 Работа с диалогами

Высокоуровневые методы информатики и программирования Лекция 2 5 Работа с диалогами. План работы. Понятие диалога Простой диалог – MessageBox ; Встроенные диалоги; Собственные диалоги. Однодокументные и многодокументные интерфейсы. Программа включает :. основную форму программы

chung
Download Presentation

Высокоуровневые методы информатики и программирования Лекция 2 5 Работа с диалогами

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Высокоуровневые методы информатики и программированияЛекция 25Работа с диалогами

  2. План работы • Понятие диалога • Простой диалог – MessageBox; • Встроенные диалоги; • Собственные диалоги. • Однодокументные и многодокументные интерфейсы.

  3. Программа включает: • основную форму программы • дочерние окна отображения (MDI) • диалоговые окна – объекты класса Form, которые создаются и показываются при выборе пунктов меню (или элемента ToolStrip) • для получения данных от пользователя

  4. Перечисление - DialogResult • Вызов диалога frm.ShowDialog • 2. Диалог возвращает значение перечисления DialogResult: Yes, No, Cancel, Retry, Abort, Ignore, None if(openFileDialog1.ShowDialog() == DialogResult.OK) { if((myStream = openFileDialog1.OpenFile())!= null) { // Insert code to read the stream here. myStream.Close(); } }

  5. Типы диалоговых окон • По способу создания • Библиотечные диалоги • Класс MessageBox • Общие диалоги (Common Dialogs) • Собственные диалоги • По способу работы • модальные – блокируют работу других окон • немодальные – позволяют работать с другими окнами

  6. Показ и закрытие формы Методы показа формы • В немодальном режиме - Show() • В модальном режиме - ShowDialog() Методы закрытие формы • Сохранение в памяти - Hide() • Удаление из памяти - Close()

  7. Простой диалог System.Windows.Forms.MessageBox.Show • Статический класс • Один метод Show – 12 вариантов • Основной метод – Show() • MessageBoxButtons – комбинации кнопок на форме: Ok, OkCancel, RetryCancel, Yes, No, YesNoCancel, AbortRetryIgnore

  8. Пример вызова диалога MessageBox MessageBox.Show("OK to Close", "Game Status", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2 );

  9. Иерархия общих диалогов

  10. Классы встроенных диалоговSystem.Windows.Forms • OpenFileDialog – диалог открытия файла • SaveFileDialog– диалог для сохранения файла • PrintDialog– диалог вывода на печать • PrintPreviewDialog– диалог предварительный просмотр результата печати • ColorDialog – диалог выбора цвета • FontDialog – диалог выбора шрифта • FolderBrowserDialog – диалог работы с каталогами

  11. Свойства встроенного диалогаOpenFileDialog • Title – заголовок диалога • Filter – “описание1| фильтр1| описание2| фильтр2” Например: "txt files (*.txt) | *.txt | All files (*.*) | *.*" • FilterIndex – фильтр по умолчанию • InitialDirectory – начальная папка для ввода • AddExtension – добавлять расширение по умолчанию? • DefaultExtension – расширение по умолчанию • FileName (FileNames) – имя выбранного файла • ValidateNames – проверять автоматически существование файла? • CheckFileExist • CheckPathExist

  12. openFileDialog1.InitialDirectory = “c:\”; openFileDialog1.Filter = “txt files (*.txt) | *.txt | All files (*.*) | *.*”; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true;

  13. Пример вызова диалога OpenFile string str; ….. if(openFileDialog1.ShowDialog() == DialogResult.OK) { StreamReader myStream; myStream = File.OpenText(openFileDialog1.FileName); if (myStream != null) { // Здесь вставляется код для чтения данных str = myStream.ReadLine(); myStream.Close(); } }

  14. Пример вызова общего диалога private void myClick(object sender, System.EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter ="txt files (*.txt) | *.txt | All files (*.*) | *.*"; openFileDialog1.FilterIndex = 1; openFileDialog1.AddExtension = true; openFileDialog1.Title = "My Open Dialog"; openFileDialog1.ValidateNames = true; DialogResult rc = openFileDialog1.ShowDialog(); if(rc == DialogResult.OK) { string s = openFileDialog1.FileName; } }

  15. Собственные диалоговые окна

  16. Создание собственного диалога • Добавить форму • Разместить элементы управления • Назначить в обработчиках событий кнопок значение свойства DialogResult • По заданному событию в основной форме создать экземпляр диалога • Вызвать на выполнение метод ShowDialog • Проанализировать результат • Сохранить полученные значения

  17. Класс DialogForm public partial class DialogForm : Form { public int x; public int y; public DialogForm() { InitializeComponent(); } private void DialogForm_Load(object sender, EventArgs e) { textBox1.Text = x.ToString(); textBox2.Text = y.ToString(); } } private void button1_Click(object sender, EventArgs e) { x = Convert.ToInt32(textBox1.Text); y = Convert.ToInt32(textBox2.Text); this.DialogResult = DialogResult.OK; } private void button2_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; }

  18. Использование собственного диалога privatevoidmyClick(objectsender, System.EventArgse) { int X = 5, Y = 10; DialogFormdlg = new DialogForm(); dlg.x = X; dlg.y = Y; DialogResultrc = dlg.ShowDialog(); if (rc == DialogResult.OK) { X = dlg.x; Y = dlg.y; MessageBox.Show("X = "+X.ToString()+";Y="+Y.ToString(), "Результат работы диалога”,MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); } }

  19. Сообщение о коде завершения диалога private void buttonOK_Click(object sender, System.EventArgs e) { this.DialogResult = DialogResult.OK; } private void buttonCancel_Click(object sender, System.EventArgs e) { this.DialogResult = DialogResult.Cancel; }

  20. AcceptButton = buttonOK; //Button to receive default focus CancelButton = buttonCancel; //Fires when Esc pushed

More Related