Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_ПОА.doc
Скачиваний:
90
Добавлен:
13.02.2015
Размер:
2.65 Mб
Скачать

Retrieving Data from a Dialog Box

There are several ways you can pass data from one Windows form to another. In this example, you will pass Form1 to the constructor of Form2.

To retrieve data from a dialog box.

  1. Double-click the OK button to create the default Click event handler.

Before you add code to this procedure, you should create a variable for the main form and create a new constructor for the Form2 class.

  1. Add the following code below the default constructor. This code creates an overloaded constructor that requires Form1 as a parameter.

Form1 mainForm;

public Form2(Form1 mainForm)

{

this.mainForm = mainForm;

InitializeComponent();

}

  1. In the Click event handler of okButton, add the following code. This code clears all existing text in the list box, assigns each line of text of the text box on Form2 to an array, and then adds each item of the array to the list box on Form1.

    if (this.textBox1.Text != string.Empty)

    {

    mainForm.listBox1.Items.Clear();

    string[] stringsEntered = textBox1.Lines;

    for (int count = 0; count < stringsEntered.Length; count++)

    {

    mainForm.listBox1.Items.Add(stringsEntered[count]);

    }

    }this.Close();

  2. Добавьте элемент управления Button в форму и измените следующие свойства в окне Свойства.

Свойство

Значение

Имя

okButton

Текст

ОК

Извлечение данных из диалогового окна

Передать данные из одной формы Windows Forms в другую можно несколькими способами. В этом примере Form1 будет передана конструктору Form2.

    1. Дважды щелкните кнопку ОК для создания обработчика событий по умолчанию Click. Перед добавлением кода в эту процедуру необходимо создать переменную для основной формы и новый конструктор для класса Form2.

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

Form1 mainForm;

public Form2(Form1 mainForm)

{

this.mainForm = mainForm;

InitializeComponent();

}

    1. Добавьте следующий код в обработчик событий Click кнопки okButton. Этот код очищает список, присваивает каждую строку текстового поля в Form2 массиву и затем добавляет каждый элемент массива текстовому полю в Form1.

      if (this.textBox1.Text != string.Empty)

      {

      mainForm.listBox1.Items.Clear();

      string[] stringsEntered = textBox1.Lines;

      for (int count = 0; count < stringsEntered.Length; count++)

      {

      mainForm.listBox1.Items.Add(stringsEntered[count]);

      }

      }

      this.Close();

    2. Right-click Form1 in Solution Explorer and click View Designer.

    3. Double-click the Add button to add the default Click event handler, and add the following code to create an instance of Form2 and display the form:

      Form2 subForm = new Form2(this);

      subForm.Show();

    4. Press F5 to run the code.

    5. When the form opens, click Add.

    6. When the dialog box opens, type the following list of colors, and press ENTER after each word.

Blue

Green

Yellow

Red

  1. Click OK.

  2. Verify that the data typed in the dialog box appears in the list box of Form1.

  3. Close the application.

  1. В обозревателе решений правой клавишей мыши щелкните элемент Form1 и выберите команду Открыть в конструкторе.

  2. Дважды щелкните кнопку Добавить для добавления обработчика событий по умолчанию Click и добавьте следующий код для создания экземпляра Form2 и отображения формы.

    Form2 subForm = new Form2(this);

    subForm.Show();

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

  4. После открытия формы щелкните Добавить.

  5. После открытия диалогового окна введите следующий список цветов, нажимая ВВОД после каждого слова.

Синий

Зеленый

Желтый

Красный

  1. Нажмите кнопку ОК.

  2. Убедитесь, что введенные в диалоговом окне данные появились в списке Form1.

  3. Закройте приложение.