Опубликован: 25.03.2010 | Доступ: свободный | Студентов: 1447 / 158 | Оценка: 4.31 / 4.00 | Длительность: 25:42:00
Лекция 12:

Классы Application и Form

  • Заполните файлы следующим кодом
using System;
using System.Windows.Forms;
    
namespace SimpleWinApp
{
    class GeneralForm : Form
    {
        public GeneralForm()
        {
        }
    }
}
Листинг 12.1 . Код файла GeneralForm.cs
using System;
using System.Windows.Forms;
    
namespace SimpleWinApp
{
    class Program
    {
        static void Main()
        {
            // Поддержка визуальных стилей Windows XP
            Application.EnableVisualStyles();
            // Включение формы в цикл сообщений Windows
            Application.Run(new GeneralForm());
            // Для задержки консольного окна
            Console.ReadLine();
        }
    }
}
Листинг 12.2 . Код файла Program.cs

В нашем простом приложении класс GeneralForm пока не делает ничего, кроме как инкапсулирует (упаковывает) базовый библиотечный класс Form.

Класс Application определяет ряд статических свойств уровня приложения, многие из которых доступны только для чтения.

Таблица 12.1 . Некоторые свойства класса Application
Свойство Описание
StartupPath Получает путь для исполняемого файла, который запустил приложение, не включая его имя
ExecutablePath Получает путь для исполняемого файла, который запустил приложение, включая имя файла
ProductName Содержит значение атрибута [ AssemblyProduct ] сборки
ProductVersion Содержит значение атрибута [ AssemblyVersion ] сборки
CompanyName Содержит значение атрибута [ AssemblyCompany ] сборки

Класс Application определяет ряд статических событий уровня приложения.

Таблица 12.2 . Некоторые события класса Application
Событие Описание
ApplicationExit Генерируется непосредственно перед тем, как данное приложение завершает работу
Idle (простой) Генерируется тогда, когда цикл сообщений приложения заканчивает обработку текущего пакета сообщений и переходит в состояние ожидания
ThreadExit Генерируется перед тем, как очередной поток приложения завершается. Если завершается основной поток приложения, то предшествует событию ApplicationExit
  • Проверьте работу класса Application, скорректировав файл GeneralForm.cs проекта так
using System;
using System.Windows.Forms;
using System.Reflection;// Для атрибутов
    
// Глобальные атрибуты для сборки    
[assembly:AssemblyCompany("Рога и копыта")]
[assembly:AssemblyProduct("Мыльные пузыри")]
[assembly:AssemblyVersion("0.0.0.1")]
    
namespace SimpleWinApp
{
    class GeneralForm : Form
    {
        int count = 0;
        const int MAX_COUNT = 100;
    
        public GeneralForm()
        {
            // Настройка консольного окна
            Console.ForegroundColor = ConsoleColor.White;
            Console.CursorVisible = false;
            Console.Title = "Вспомогательное окно";
    
            // Использование свойств класса Application
            Console.WriteLine("Это приложение 
    создано компанией: "
                + Application.CompanyName);
            Console.WriteLine("Компания производит: "
                + Application.ProductName);
            Console.WriteLine("Версия данного продукта: "
                + Application.ProductVersion);
    
            // Использование событий класса Application
            Application.Idle += new EventHandler(AppIdle);
            Application.ApplicationExit += new EventHandler(AppExit);
        }
    
        void AppIdle(object sender, EventArgs e)
        {
            Console.WriteLine("{0}) Простой 
    приложения", ++count);
            if (count > MAX_COUNT)
            {
                Console.Clear();    // Очистить буфер консоли
                count = 0;          // Сбросить счетчик
            }
        }
    
        void AppExit(object sender, EventArgs e)
        {
            Console.WriteLine("Графическое окно 
    приложения закрыто");
        }
    }
}
Листинг 12.3 . Код файла GeneralForm.cs

Код файла Program.cs останется прежним. Результат выполнения программы будет таким


Атрибуты сборки можно разместить в специальном файле, удалив их из кода приложения.

  • Выполните команду Project/New Item и выберите шаблон Assembly Information File

  • Откройте файл на редактирование и скорректируйте соответствующие атрибуты сборки в добавленном файле. Явное задание атрибутов в файле GeneralForm.cs нужно удалить
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
    
[assembly: AssemblyCompany("Рога и копыта")]
[assembly: AssemblyProduct("Мыльные пузыри")]
[assembly: AssemblyCopyright("Copyright ©  2007")]
[assembly: AssemblyVersion("0.0.0.1")]
    
[assembly: AssemblyTitle("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyFileVersion("1.0.0.0")]
    
[assembly: ComVisible(false)]
    
[assembly: Guid("01ac5f2e-a47c-424d-9754-ac4be62ae171")]
Листинг 12.4 . Код файла уровня сборки AssemblyInfo1.cs
Максим Филатов
Максим Филатов

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

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

 

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