Урок 26.Передаем данные из диалога

В этом уроке мы с вами посмотрим, как можно передавать данные из диалоговых окон (форм) в, например, основное окно программы. А именно, наша программа будет передавать строку из текстового поля из одной формы в соответствующее поле другой формы.

Создайте Windows-приложение, добавьте в него еще одну форму (для этого выбираем Add -> Windows Form из контекстного меню проекта в окне Solution Explorer). На основной форме Form1 расположите кнопку (по ней будет вызываться вторая форма) и текстовое поле (в него будут передаваться данные из второй формы). На второй форме (Form2) расположите две кнопки (которые скоро превратятся в кнопки OK и Cancel) и текстовое поле (из него текст будет передаваться в первую форму).

Теперь установим несколько свойств. Сначала для второй формы Form2. А именно свойство DialogResult для первой кнопки установите в OK (это будет кнопка OK), а для второй - в Cancel (это будет кнопка Cancel). Для самой же формы Form2 установите свойства AcceptButton в Button1 и CancelButton в Button2. Кроме того сделайте текстовое поле public (это свойство Modifiers). Собственно говоря со второй формой все. Разве что можно изменить заголовки (свойство Text) для наших кнопок на OK и Cancel соответственно. Обратите внимание, что мы не писали никакого обработчика для нажатия на кнопки OK и Cancel - они и так будут работать правильно.

Теперь займемся первой формой Form1. Добавьте в обработчик для кнопки следующий код:

private void button1_Click(object sender, EventArgs e) { Form2 f = new Form2(); // Если нажата кнопка OK if (f.ShowDialog() == DialogResult.OK) { // то передаем данные. textBox1.Text = f.textBox1.Text; } }

Как вы видите, для показа диалогового окна в модальном виде мы вызываем метод ShowDialog. Для показа в немодальном виде надо вызвать метод Show.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: