Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 1447 / 158 | Оценка: 4.31 / 4.00 | Длительность: 25:42:00
Лекция 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. Ввожу код на сайте, пишет:

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

 

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