006 – Приклад створення та виклику нової форми в C#

Приклад створення та виклику нової форми в C#


Зміст


Умова задачі

Реалізувати демонстраційний додаток, що здійснює виклик з основної форми другорядної форми за схемою, зображеною на рисунку 1. Додаток реалізує взаємодію між різними формами, якими можуть бути діалогові вікна будь-якої складності.

У головній формі Form1 розмістити:

  • елемент управління типу Label для виведення результату повернення з другорядної форми;
  • елемент управління типу Button для виклику другорядної форми.

У другорядній формі Form2 розмістити:

  • елемент управління типу Label для виведення заголовку форми;
  • два елементи управління типу Button для забезпечення підтвердження або непідтвердження вибору (дії) у другорядній формі.

Visual Studio C# Схема взаємодії

Рис. 1. Схема взаємодії між формами

 


Виконання

1. Створення нового проекту за шаблоном Windows Forms Application

Завантажити Microsoft Visual Studio 2010. Створити новий проект як Windows Forms Application. Детальний приклад створення проекту за шаблоном Windows Forms Application описується тут.

Зберегти проект в довільній папці.

Після створення додатку маємо одну форму, програмний код якої розміщується в файлі “Form1.cs” (рис. 2).

Visual Studio - C# основна форма додатку Form1

Рис. 2. Основна форма додатку Form1

 

2. Розробка основної форми

З палітри елементів управління Toolbox розміщуємо на формі:

  • елемент управління типу Button;
  • елемент управління типу Label.

Автоматично створюються два об’єкти-змінні з іменами button1 та label1.

В елементі управління типу Button властивість Text встановити в значення “Show Form 2“.
В елементі управління типу Label властивість Text встановити в значення “Result = “.

Після внесених змін основна форма додатку Form1 матиме вигляд як показано на рисунку 3.

Windows Forms C# головна форма

Рис. 3. Основна форма програми після внесених змін

 

3. Розробка другорядної форми

Для створення другорядної форми в C# можна скористатися декількома способами.

Спосіб 1.
Для додавання форми № 2 в проект цим способом потрібно викликати команду (рис. 4)

Project -> Add Windows Form...

Visual Studio C# команда "Add Windows Form..."

Рис. 4. Команда “Add Windows Form…” для додавання нової форми

У результаті відкриється вікно “Add New Item – Windows Forms Application1“. У цьому вікні вибираємо елемент “Windows Form “(рис. 5). Залишаємо ім’я форми як “Form2.cs“.

Visual Studio C# нова форма додавання

Рис. 5. Вікно додавання нової форми до проекту

Після натиску на кнопці “Add” нову форму буде додано до проекту (рис. 6).

C# Windows Forms форма файл "Form2.cs"

Рис. 6. Новостворена форма Form2 та файл що їй відповідає “Form2.cs

Спосіб 2.

Також нову форму можна додати до проекту з допомогою відповідної команди з контекстного меню (рис. 7).

Послідовність дій наступна:

  • в Solution Explorer зробити клік правою кнопкою “мишки” на назві додатку WindowsFormsApplication1;
  • вибрати підменю Add;
  • у підменю Add вибрати команду “Windows Form…“.

Visual Studio C# Додавання нової форми Solution Explorer

Рис. 7. Додавання нової форми з Solution Explorer

У результаті відкриється таке саме вікно як на рисунку 5.

 

4. Розміщення елементів управління на другорядній формі

Наступним кроком є розробка другорядної форми. Вона передбачає розміщення елементів управління на формі.

Використовуючи засоби панелі інструментів Toolbox створюємо другорядну форму Form2 як показано на рисунку 8. Така форма відповідає умові задачі. Таки чином, на Form2 маємо елементи управління label1, butto1, button2.

Windows Forms C# Другорядна форма

Рис. 8. Другорядна форма Form2

 

5. Програмування подій кліку на кнопках OK та Cancel форми Form2

Програмуємо подію кліку на кнопці OK. Детальний приклад програмування події кліку на кнопці описується тут.

У результаті в програмний код обробника події button1_Click() (кнопка “OK“) вписуємо такий рядок:

this.DialogResult = DialogResult.OK;

Це означає, що результат повернення з форми Form2 є “OK“.
Так само в обробнику події button2_Click вписуємо:

this.DialogResult = DialogResult.Cancel;

що означає вибір кнопки “Cancel” (button2).



Після внесених змін, лістинг програмного коду файлу “Form2.cs” буде мати такий вигляд:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
  public partial class Form2 : Form
  {
    public Form2()
    {
      InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
      this.DialogResult = DialogResult.OK;
    }

    private void button2_Click(object sender, EventArgs e)
    {
      this.DialogResult = DialogResult.Cancel;
    }
  }
}

Перехід до програмного коду форми Form2 (файл “Form2.cs“) можна здійснити в Solution Explorer. Для цього в Solution Explorer викликаємо контекстне меню для форми Form2 і з цього меню вибираємо команду “View Code” (рис. 9).

Visual Studio C# Команда "View Code"

Рис. 9. Команда “View Code” для переходу в режим програмного коду

6. Підключення та виклик форми Form2 з основної форми додатку

Згідно з умовою задачі, для виклику Form2 з Form1 потрібно запрограмувати подію кліку на кнопці “Show Form2“.

Програмний код обробника події буде мати такий вигляд:

...
private void button1_Click(object sender, EventArgs e)
{
    Form2 f = new Form2(); // створюємо об’єкт типу Form2
    if (f.ShowDialog() == DialogResult.OK) // виклик діалогового вікна форми Form2
    {
        label1.Text = "Result = OK!"; 
    }
    else
    {
        label1.Text = "Result = Cancel!";
    }
}
...

У лістингу, наведеному вище, спочатку створюється екземпляр об’єкту типу Form2. В операторі умовного переходу if здійснюється виклик діалогового вікна форми Form2 з допомогою рядка

f.ShowDialog();

Функція ShowDialog() виводить вікно форми і тримає його відкритим до тих пір, поки користувач не зробить якийсь вибір.

Після вибору користувачем тієї чи іншої команди, вікно закривається з кодом повернення. Відбувається перевірка коду повернення з відомими константами класу DialogResult.

Після перевірки виводиться повідомлення про вибрану користувачем дію у формі Form2 (елемент управління label2).

Лістинг всього програмного коду форми Form1 наступний:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            if (f.ShowDialog() == DialogResult.OK)
            {
                label1.Text = "Result = OK!";
            }
            else
            {
                label1.Text = "Result = Cancel!";
            }
        }
    }
}

7. Виконання додатку

Після виконаних дій можна запускати додаток на виконання і дослідити його роботу.


Зв’язані теми