ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Windows Forms: Сучасна модель програмування для створення GUI додатків
         

     

    Інформатика, програмування

    Windows Forms: Сучасна модель програмування для створення GUI додатків

    Jeff Prosise, Microsoft Corp.

    Вступ

    Щоб створити GUI додатки в Microsoft. NET потрібно використовувати Windows Forms. Windows Forms - новий стиль побудови програми на базі класів. NET Framework class library. Вони мають власну модель програмування, яка більш досконаліше, ніж моделі, засновані на Win32 API або MFC, і вони виконуються в керованої середовищі. NET Common Language Runtime (CLR). Ця стаття дає уявлення про те, що таке Windows Forms, розглядаючи її від моделі програмування до Microsoft Intermediate Language і JIT-транслятора.

    Ви вже багато чули, що Microsoft. NET - нова платформа, яка заснована на Windows. Це ціла нова парадигма програмування, яка змінить шлях, яким ви зараз думаєте про написання програм для Windows. Вона реалізована на бібліотеці класів. NET Framework class library і містить більш єдину модель програмування, поліпшений захист та більш багаті можливості для написання повнофункціональних веб-додатків. І це тільки початок.

    Windows Forms - одна з найбільш цікавих можливостей Microsoft. NET. Якщо ви знайомі з MFC (або Windows API), то Windows Forms гарний початок для роботи з . NET Framework class library, тому що вона дозволяє писати традиційні GUI додатки з вікнами, формами і т.п. речами. Одного разу, почавши працювати з Windows Forms ви зможете швидко зрозуміти. NET Framework.

    Головна вигода від написання Windows-додатків з використанням Windows Forms - це те, що Windows Forms гомогенізують (створюють однорідну (гомогенну) структуру) програмну модель і усувають багато помилок і протиріччя від використання Windows API. Наприклад, кожен досвідчений програміст під Windows знає, що деякі стилі вікна можуть застосовуватися тільки до вікна, коли воно вже створено. Windows Forms значною мірою усувають таке протиріччя. Якщо ви хочете існуючого вікна задати стиль, який може бути присвоєний тільки в момент створення вікна, то Windows Forms спокійно знищить вікно і знову створить його з вказаним стилем. Крім того,. NET Framework class library набагато багатший, ніж Windows API, і коли ви будете писати програми, використовуючи Windows Forms, ви отримаєте в розпорядження більше можливостей. Написання програми з використанням Windows Forms потребують меншого кількості коду, ніж додатки, які використовують Windows API або MFC.

    Інша вигода від Windows Forms - ви використовуєте той же самий API, незалежно від мови програмування, який ви обрали. У минулому, вибір мови програмування управляв вибором API. Якщо ви програмували в Visual Basic, ви використали один API (реалізований на мові Visual Basic), у той час як програмісти C використовували Win32 API, а програмісти C + +, взагалі кажучи, використовували MFC. MFC-програмісту було важко переключитися на Visual Basic і навпаки. Але тепер такого більше немає. Всі додатки, які використовують Windows Forms, використовують один з API. NET Framework class library. Знання одного API досить дозволить програмісту писати програми фактично на будь-якій мові, який він обере.

    Windows Forms ні як не менше, ніж сучасна модель програмування для GUI додатків. На відміну від моделі програмування Win32, в якій багато що йде ще від Windows 1.0, нова модель була розроблена з урахуванням усіх сучасних вимог. Мета цієї статті полягає в тому, щоб познайомити читача з моделлю програмування Windows Forms. Щоб компілювати й виконувати приклади коду, наведеного далі, на вашому комп'ютері має бути встановлений пакет Microsoft . NET Framework SDK (. NET Framework SDK Beta 1 доступний на сайті Microsoft).

    Модель програмування Windows Forms

    В Windows Forms термін "форма" - синонім вікна верхнього рівня. Головне вікно програми - форма. Будь-які інші вікна верхнього рівня, які має додаток - також форми. Вікна діалогу також вважаються формами. Незважаючи на назва, додатки, що використовують Windows Forms, не виглядають як форми. Подібно традиційним Windows-додатків програми здійснюють повний контроль над подіями у власних вікнах.

    Програмісти бачать Microsoft. NET через лінзу. NET Framework class library. Уявіть MFC на порядок більше і ви отримаєте точну картину про ширину і глибину. NET Framework class library. Щоб полегшити протиріччя в позначення і додати організацію багатьом сотням класів,. NET Framework class library розбита на ієрархічні розділи по іменах. Кореневий розділ, System, визначає фундаментальні типи даних, що використовуються всіма додатками. NET.

    Програми, використовують Windows Forms використовують класи System.WinForms. Цей розділ включає такі класи, як Form, який моделює поведінку вікон або форм; Menu, який представляє меню; Clipboard, який дає можливість додатків Windows Forms використовувати буфер обміну. Він також містить численні класи, які надають кошти управління, наприклад: Button, TextBox, ListView, MonthCalendar і т.д. Ці класи можуть бути включені в додаток або з використанням тільки імені класу, або з використанням повного імені, наприклад: System.WinForms.Button.

    В основі майже кожної програми, написаної із застосуванням Windows Forms, -- похідний клас від System.WinForms.Form. Зразок цього класу представляє головне вікно програми. System.WinForms.Form має безліч властивостей і методів, які мають багатий програмний інтерфейс до форм. Хочете знати розміри клієнтської області форми? У Windows ви викликали б функцію API GetClientRect. У Windows Forms потрібно використовувати властивості ClientRectangle або ClientSize.

    Програми, засновані на Windows Forms, які використовують кнопки, списки та інші види компонентів Windows, використовують класи управління System.WinForms, значно спрощують програмування управління. Хочете створити стилізовану кнопку з зображенням у вигляді фону? Немає проблем. Увімкніть потрібне зображення в об'єкт System.Drawing.Bitmap і призначте його властивості кнопки BackgroundImage. Як щодо управління кольором? Ви коли-небудь пробували налаштувати колір фону текстового поля? У Windows Forms це просто: потрібно просто присвоїти колір властивості BackColor, все отстальное система зробить сама.

    Інший важливий "будівельний" блок програми, який використовує Windows Forms - клас System.WinForms на ім'я Application. Цей клас містить статичний метод Run, який завантажує програму та відображає вікно.

    Ви скажете: якщо додатки, які є Windows Forms, не обробляють повідомлення, як вони відповідають на призначений для користувача введення або знають коли малювати? Багато класів мають віртуальні методи, які можна нехтувати ... Наприклад, System.WinForms.Form містить віртуальний метод OnPaint, який викликається коли клієнтська область форми потребує оновлення. OnPaint -- один з багатьох віртуальних методів, який можна нехтувати у похідному класі для формування інтерактивних форм.

    Інша важлива грань моделі програмування Windows Forms - механізм, який форми використовують для відповіді на введення в меню, засобів управління і інших елементів GUI додатки. Традиційні Windows-програми обробляють повідомлення WM_COMMAND і WM_NOTIFY використовуючи події процесу Windows Forms. У C # і на інших мовах, які підтримують. NET Common Language Runtime (CLR), події - члени типу першого класу нарівні з методами, полями і властивостями. Фактично всі керуючі класи (control classes) Windows Forms (а також і багато некеровані класи) створюють події. Наприклад, кнопка (екземпляр System.WinForms.Button) після натискання створює подія Click. Форма, яка повинна відповісти на натискання кнопки може використовувати наступний код, щоб з'єднати кнопку на обробником події Click:

    MyButton.Click + = new EventHandler (OnButtonClicked);

    ...

    private void OnButtonClicked (object sender, EventArgs e)

    (

    MessageBox.Show ( "Click !");

    )

    EventHandler - спеціальний обробник подій, який виконує метод OnButtonClicked коли MyButton створює подія Click. Перший параметр OnButtonClicked ідентифікує об'єкт, який викликав подія. Другий параметр в основному має сенсу для події Click, але використовується деякими інші типами подій, щоб передати додаткову інформацію.

    Додаток "Hello World" с Windows Forms

    Самий простий спосіб почати вивчення нової платформи - створення програми "Hello World". У лістингу 1 показана версія, створена за допомогою Windows Forms. Усі приклади в цій статті написані на C #, але ви можете писати програми Windows Forms на будь-якій мові, для якого є компілятор. NET. Сьогодні це: C #, Visual Basic, JScript і C + +.

    Лістинг 1

    using System;

    using System.WinForms;

    using System.Drawing;

    public class MyForm: Form

    (

    public MyForm ()

    (

    Text = "Windows Forms Demo";

    )

    protected override void OnPaint (PaintEventArgs e)

    (

    e.Graphics.DrawString ( "Hello, world ", Font,

    new SolidBrush (Color.Black), ClientRectangle);

    )

    public static void Main (string [] args)

    (

    Application.Run (new MyForm ());

    )

    )

    Почнемо спочатку. Слово "using" вгорі файлу дозволяють послатися на класи в пакетах System, System.WinForms і System.Drawing. Наприклад,

    using System.WinForms;

    ви пишете

    public class MyForm: System.WinForms.Form

    замість

    public class MyForm: Form

    У додатку, що використовує Windows Forms, кожне вікно - або форма - представлено екземпляром класу, похідного від System.WinForms.Form (Лістинг 1 - клас MyForm). Конструктор MyForm встановлює текст заголовка форми "Windows Forms Demo" використовуючи властивість Text. Text - одне з більше ніж 100 властивостей, які форма успадковує від System.WinForms.Form, але поки єдине, в якому ви потребуєте.

    Як ви знаєте, вікна отримують повідомлення WM_PAINT і більшість перерісовок екрану виконано у відповідь на ці повідомлення. У Windows Forms еквівалент повідомлення WM_PAINT -- віртуальний метод на ім'я OnPaint. Похідний клас форми може перевизначити цей метод у разі потреби виконувати власну перемальовування у відповідь на повідомлення WM_PAINT.

    Зверніть увагу на ключове слово в лістингу 1, яке компілятор C # інтерпретує як підтвердження, що ви хочете перевизначити віртуальний метод, успадкований від базового класу. Перопределенний OnPaint записує "Hello, world" в клієнтської області форми. OnPaint викликає об'єкт PaintEventArgs (System.WinForms.PaintEventArgs), який містить властивості Graphics і ClipRectangle. Властивість Graphics посилається до об'єкта Graphics (System.Drawing.Graphics), який є еквівалентом контексту пристрою (device context) в Windows Forms. ClipRectangle похідне об'єкта Rectangle (System.Drawing.Rectangle), який описує яка частина форми є неприпустимою.

    Метод OnPaint з MyForm використовує Graphics.DrawString, щоб виконати висновок на екран. Перший параметр DrawString - безпосередньо саме повідомлення (рядок) "Hello, world". Другий - об'єкт Font (System.Drawing.Font), який описує шрифт для перегляду тексту. MyForm.OnPaint використовує шрифт форми (якою встановлено у властивості Font форми). Третій параметр - Brush (System.Drawing.Brush) - об'єктне визначення кольору тексту. Четвертий і заключний параметр - прямокутник області, куди потрібно вписати текст.

    Заключна частина MyForm - статичний метод Main. Main - точка входу в програму. Кожне додаток. NET повинно мати цей метод. Main може бути оголошений будь-яким з наступних способів:

    public static void Main ()

    public static int Main ()

    public static void Main (string [] args)

    public static int Main (string [] args)

    Параметр args методу Main - рядковий масив параметрів командного рядка (що задаються при виклику програми). Елемент args [0] зберігає перший параметр командного рядка, args [1] - другий і т.д. Як правило, в кожному додатку метод Main виконується тільки одного разу (компілятор Microsoft C # допускає використання ключа/main, вказує в якому класі міститься метод Main, якщо програма має кілька класів з методами Main). Main може знаходитися в будь-якому класі, визначеному у додатку.

    Відображення нашої форми на екрані - простий приклад виконання MyForm і передачі дії Application.Run. Application - інший клас, визначений у System.WinForms. Метод Run створює форму, відображає її на екрані і обробляє повідомлення до ній. Наступна інструкція в лістингу 1

    Application.Run (new MyForm ());

    обробляє MyForm і показує форму.

    Збережіть текст програмного коду (Лістинг 1) у файлі Hello.cs і відкомпілюйте його. Щоб це зробити, відкрийте вікно командного рядка, перейдіть до каталогу файлу Hello.cs і введіть:

    csc/target: winexe/out: Hello.exe / reference: System.dll

    /reference: System.WinForms.dll / reference: System.Drawing.dll

    /reference: Microsoft.Win32.Interop.dll Hello.cs

    Команда csc викликає компілятор Microsoft C #. "Hello.cs" вказує на файл, який потрібно відкомпілювати. Ключ "/ target: winexe" повідомляє компілятору, що потрібно створити GUI-додаток для Windows, а "/ out: Hello.exe" задає ім'я файлу програми (цей ключ можна опустити, тому що в даному випадку за замовчуванням все одно буде створений Hello.exe, тому що CS-файл названий Hello.cs). Ключі "/ reference" вказують посилання на зовнішні класи, наприклад, для System.WinForms.Form і System.Drawing.Size. Для стислості допускається замінювати "/ target" і "/ reference" на "/ t" і "/ r".

    Hello.exe не звичайний EXE-файл, це. NET-програма, яка містить такі важливі елементи:

    Microsoft Intermediate Language (MSIL), згенерована за допомогою C #

    Метадані, описують типи (класи), визначені у додатку, та типи (наприклад, System.WinForms.Form), на які посилається додаток, що знаходяться в іншому місці (наприклад, в MsCorLib.dll і System.WinForms.dll)

    Декларація, що описує необхідні файли для збірки додатку

    В мовою. NET, збірка - це колекція з одного або більше файлів, що створюють модуль. Наша збірка містить тільки один файл - Hello.exe - і цей факт відзначений в декларації всередині здійсненним програми. Декларація фізично збережена як частина метаданих. Кожна керована здійсненне програма - це є будь-який PE-файл, який містить MSIL - частина збірки і кожна керована здійсненне програма має метадані всередині. Один з файлів в. NET-складання містить декларацію ідентифікації файлів, які повинні бути включені при складанні і загальнодоступні види. Компілятор C # виробляє всю необхідну інфраструктуру.

    Тепер коли ви відкомпілювати Hello.exe, можете набрати в командному рядку:

    Hello

    Подивіться на рис.1, щоб побачити результат роботи нашої програми.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://bestcode.org/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status