Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MetodUkaz_VP_S.docx
Скачиваний:
16
Добавлен:
11.03.2015
Размер:
14.12 Mб
Скачать

Лабораторная работа №3

Эмуляция формы

Цель работы: получить знания о видах элементов управления, форм и способах работы с ними.

Теоретические сведения

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

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

Кнопки позволяют пользователям взаимодействовать с программой. Например, во многих диалоговых окнах есть кнопки "ОК" и "Отменить". Для отправки сведений, введенных в диалоговом окне, пользователи могут нажать кнопку "ОК". В противном случае они могут нажать кнопку "Отмена" для закрытия диалогового окна без отправки данных. Можно установить свойства для изменения ее внешнего вида. Например, можно установить свойство Text для отображения на кнопке определенного текста или свойство ForeColor для изменения цвета текста. Для элементов управления существуют события, возникающие, когда пользователь выполняет определенные действия с элементом управления. Создание обработчиков событий позволит определять, каким образом программа должна реагировать на событие. Все элементы управления имеют обработчик событий по умолчанию, для кнопки таким обработчиком является Click. Код, написанный в обработчике событий Click, выполнится когда пользователь нажмет кнопку. Разберем пример связанный с элементом управления Button:

  1. Создайте проект Windows Forms

  2. Из панели элементов перетащите в форму элемент управления Button.

  3. В окне Свойства измените свойство Textна Отобразить дату и затем нажмите клавишу ВВОД.

  4. Затем в окне Свойства щелкните стрелку раскрывающегося списка справа от свойства ForeColor, затем выберите вкладку Настраиваемый в появившемся диалоговом окне.

  5. Щелкните красный квадрат для использования красного шрифта в тексте на кнопке.

  6. В форме дважды щелкните кнопку, чтобы открыть редактор кода.

Редактор кода откроется в середине метода с именем button1_Click. Это — обработчик событий Click. Вводимый здесь код будет выполняться при нажатии кнопки.

  1. В обработчик событий button1_Click введите следующую строку кода:

MessageBox.Show("Today is " +

DateTime.Today.ToLongDateString());

  1. Нажмите клавишу F5 для выполнения программы.

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

Отобразить текст можно в самых различных элементах управления, однако основным элементом в программе, в котором выводится текст, является Label. При добавлении надписи в форму цвет фона совпадет с цветом формы так, что виден только текст. Можно изменить свойство BackColor надписи. Для отображения текста в надписи свойству Text следует задать определенное значение. Свойство Font определяет шрифт для отображения текста, содержащегося в свойстве Text. Свойство ForeColor определяет непосредственно цвет текста.

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

Cпомощью элемента управления TextBox можно как отображать текст, так и получать его от пользователя. Введенные пользователем данные в TextBox можно получить с помощью свойства Text. По умолчанию свойство Multiline TextBox имеет значение false. Это означает, что пользователь может не нажимать клавишу ВВОД при создании нескольких строк текста в TextBox. Для включения этой возможности установите для свойства Multiline значение true.

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

ListBoxпозволяет отображать списки строк, приведем пример:

  1. Добавьте на форму элемент управления ListBox

  2. Добавьте две кнопки на форму

  3. Настройте обработчики событий этих кнопок как указано в примере ниже:

private void button1_Click(object sender, System.EventArgs e)

{

listBox1.Items.Add("Sally");

listBox1.Items.Add("Craig");

}

private void button2_Click(object sender, System.EventArgs e)

{

listBox1.Items.Clear(); // Очистить список

}

В результате получится, что одна кнопка добавляет строки в бокс, а вторая очищает его.

Диалоговые окна

Диалоговые окна используются для сбора сведений, вводимых пользователями. Можно создать свои собственные диалоговые окна или использовать встроенные, такие как FolderBrowserDialog и FontDialog. Для использования в приложениях C# доступно несколько компонент встроенных диалоговых окон. Их можно найти на вкладке Диалоговые окнапанели элементов. Компоненты, добавленные в форму Windows, в ней не отображаются. Вместо этого они добавляются в область компонентов, расположенную под формой.

  • MessageBox

Отображает окно сообщения, в котором могут содержаться текст, кнопки и символы, которые информируют пользователя и дают ему указания.

Примечание: Нельзя создать новый экземпляр класса MessageBox. Для отображения окна сообщения, вызовите метод MessageBox.Show(статический) . Заголовок, сообщение, кнопки и значки, отображаемые в окне сообщения, определены параметрами, передаваемыми этому методу.

В следующем примере кода показано, как использовать MessageBox для информирования пользователя об отсутствующей записи в TextBox. В этом примере предполагается, что метод вызывается из существующей формы с Button и TextBox в нем.

// Обработчик события закрытия формы

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

const string message =

"Вы уверены закрыть форму?";

const string caption = "Закрытие формы";

var result = MessageBox.Show(message, caption,

MessageBoxButtons.YesNo,

MessageBoxIcon.Question);

// Если была нажата кнопка Отмена

if (result == DialogResult.No)

{

// Отмена закрытия формы

e.Cancel = true;

}

}

  • Окно для выбора папки (пути)

Чтобы пользователи могли выбирать папки, можно использовать встроенный компонент FolderBrowserDialog. Чтобы отобразить диалоговое окно, используйте метод ShowDialog. Затем с помощью поля DialogResult.OK можно проверить, нажал ли пользователь кнопку ОК. Привёдем пример с использованием диалогового окна для выбора папки:

  1. Добавьте на форму метку(Label) и кнопку(Button)

  2. Измените следующие свойства у кнопки в конструкторе: Имя = folderPath, Текст = Путь

  3. С вкладки Диалоговые окнапанели элементов перетащите в форму компонент FolderBrowserDialog. В области компонентов появится компонент folderBrowserDialog1.

  4. Дважды щелкните кнопку, чтобы создать в редакторе кода обработчик событий по умолчанию.

  5. В обработчик событий folderPath_Click добавьте следующий код для отображения диалогового окна обозревателя папок и отображения выбранного пути в надписи:

if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

{

this.label1.Text = folderBrowserDialog1.SelectedPath;

}

  1. Запустите пример, и попробуйте выбрать папку с помощью диалогового окна.

Создание двух и более форм и перехода между ними

Для создания дополнительных форм необходимо в Обозревателе решенийщелкнуть правой кнопкой мыши по проекту и нажать там Добавить -> ФормаWindows. Для перехода из одной формы в другую, необходимо вначале понять, что формы и диалоговые окна могут быть модальными и немодальными. Модальная форма или диалоговое окно должно быть закрыто или спрятано перед продолжением работы с другими формами приложения. Диалоговые окна, в которых отображаются важные сообщения, должны всегда быть модальными. Диалоговое окно «О программе» в Visual Studio является примером модального диалогового окна. MessageBox — модальная форма, которую можно использовать. Немодальные формы позволяют переключаться между формами без необходимости закрывать начальную форму. Пока отображается форма, пользователь может продолжать работу в любом другом месте приложения. Модальные формы сложнее запрограммировать, так как пользователь может переключаться между ними в непредсказуемой последовательности. Необходимо сохранять непротиворечивое состояние приложения, несмотря на действия пользователя. Часто окна служебных программ отображаются в немодальном виде. Диалоговое окно «Найти», доступное в меню «Правка» приложения Visual Studio – пример немодального диалогового окна. Используйте немодальные формы для отображения часто используемых команд или сведений. Например, чтобы отобразить форму как модальное диалоговое окно необходимо добавить следующие строчки кода:

//Отобразить

Form frmAbout = new Form();

frmAbout.ShowDialog();

Можно поместить их например в обработчик события нажатия клавиши, тогда по нажатию будет открываться новая форма.

А чтобы отобразить форму как немодальное диалоговое окно, необходимо вместо метода ShowDialog() вызвать методShow().

Примечание: При отображении модальной формы код, следующий после метода ShowDialog, не выполняется до тех пор, пока не будет закрыто диалоговое окно. Однако при отображении немодальной формы код, следующий после метода Show, выполняется немедленно после отображения формы.

После вызова формы, до ее первоначального отображения выполнится событие Form.Load, в которое можно поместить важный код для, например, размещения элементов управления в форме.

Взаимодействие между формами

Часто приходится осуществлять взаимодействие одной формы с другой. В этом нет ничего сложного, ведь форма представляет собой обычный класс. Из лабораторной №2 вы узнали о таких модификаторов видимости как public,private,internal, а также о свойствах, и чтобы одна форма могла влиять на другую, например изменять значение какого-нибудь закрытого поля, необходимо создать либо метод с открытой областью видимости, либо свойство, а затем использовать его для воздействия на другую форму.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]