Опубликован: 25.03.2010 | Уровень: для всех | Доступ: платный
Лекция 6:

Создание оконных приложений Windows Forms

Тестирование пользовательских библиотечных классов

В результате выполненных действий мы получили полноценную библиотечную сборку с именем MyLibrary.dll, которая находится в каталоге MyLibrary/bin/Release текущего проекта и хранит в себе два класса. Теперь нужно проверить ее работоспособность. Это делается также просто, как и с классами стандартной библиотеки .NET Framework.

Один из возможных вариантов - это удалить наши файлы с исходным кодом классов. Это можно сделать в панели Solution Explorer двумя способами:

  1. Выделить файлы и выполнить для них команду контекстного Exclude From Project
  2. Выделить файлы и выполнить для них команду контекстного меню Delete

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

Но мы сделаем по другому: добавим в решение еще пару проектов для тестирования модального и немодального окон соответственно.

  • Выполните команду меню File/Add/New Project и добавьте к решению два новых пустых проекта с именем TestModal и TestModeless

После этого дерево решения в панели Solution Explorer будет выглядеть так


  • Выделите в панели Solution Explorer последовательно каждый новый проект и через контекстное меню командой Add/New Item добавьте по два новых пустых файла с именами GeneralForm.cs и Program.cs

После этого дерево решения в панели Solution Explorer будет выглядеть так


  • Заполните файлы приведенным ниже кодом, который мы ранее уже применяли для тестирования модального и немодального окна, при этом добавьте директиву using на пространство имен нашей библиотечной сборки
using System;
using System.Windows.Forms;
using System.Drawing;
using DialogBox;
    
namespace MyApp
{
    class GeneralForm : Form // Наследуем библиотечному классу
    {
        // Конструктор с настройками
        public GeneralForm()
        {
            // Начальная настройка окна
            this.Text = "С модальным окном";
            this.StartPosition = FormStartPosition.CenterScreen;
        
            // Создание и настройка объекта кнопки
            Button btn = new Button(); // Кнопка вызова диалогового окна
            btn.Parent = this;  // Назначаем родителя
            btn.Text = "Изменить цвет";// Надпись на кнопке
            int left = (this.ClientSize.Width - btn.Width) / 2;
            int top = this.ClientSize.Height - 2 * btn.Height;
            btn.Location = new Point(left, top); // Координаты привязки
            btn.AutoSize = true;// Подгонять размер под надпись
            // Подписываемся на событие
            btn.Click += ButtonOnClick;
        }
    
        // Обработчик создает диалоговое окно
        void ButtonOnClick(object sender, EventArgs e)
        {
            // Создаем объект модального окна,
            // локальный внутри обработчика 
            // Он будет заново создаваться при каждом вызове
            ModalDialogBox dlg = new ModalDialogBox();
    
            if (dlg.ShowDialog() == DialogResult.OK)// Надо изменить цвет
            {
                Random rnd = new Random();
                int iShade = rnd.Next(255);
    
                // Проверяем выбор пользователя по состоянию флажка
                // Форма еще существует, хоть и скрыта после завершения
                if (dlg.GrayShades)
                {
                    this.BackColor = Color.FromArgb( // Только случайный серый
                        iShade,
                        iShade,
                        iShade);
                }
                else
                {
                    this.BackColor = Color.FromArgb( // Случайный цветной 
                        iShade,// Уже сгенерировано, экономим силы
                        rnd.Next(255),
                        rnd.Next(255));
                }
            }
        }
    }
}
Листинг 6.31 . Код файла GeneralForm.cs проекта TestModal
using System.Windows.Forms;
    
namespace MyApp
{
    class EntryPoint
    {
        public static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new GeneralForm());
        }
    }
}
Листинг 6.32 . Код файла Program.cs проекта TestModal
Максим Филатов
Максим Филатов

Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет:

Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.

 

Как активировать код?

Денис Пашков
Денис Пашков
Россия
Татьяна Ковалюк
Татьяна Ковалюк
Украина, Киев, Киевский политехнический институт, 1974