:: Меню ::

Головна
  • Про сайт
  • Введення
  • Середовище програмування VB .NET: Visual Studio .NET
  • Вирази, оператори і передача управління
  • Класи і об'єкти
  •  Спадкоємство і інтерфейси
  • Обробка подій і делегати
  • Обробка помилок в VB .NET
  • Форми Windows, графічний вивід і друк
  • Уведення-виведення
  •  Багатопотокові застосування
  • Підтримка баз-даних в VB .NET
  • Короткий огляд ASP .NET
  • Складки .NET, установка додатків і COM Interop
  • Книга для гостей
    Контакти
    Добавити у вибране

    :: Друзі ::

     
     

    :: Лічильники ::

    = =

     

     

     

     

    Форми Windows, графічний вивід і друк

    • Трохи історії
    • Дизайнер форм
    • Збереження пропорцій: властивості Anchor і Dock
    • Меню Tab Order
    • Знову про просту програму
    • Властивості форм
    • Елементи меню і новий редактор меню Visual Studio
    • Контекстні меню
    • Форми MDI
    • Діалогові форми і діалогові вікна
    • Colordialog
    • Fontdialog
    • Filedialog
    • Створення діалогових вікон
    • Розміщення елементів на формі під час виконання
    • Спадкоємство форм
    • Побудова нестандартних елементів на базі спадкоємства
    • Перевизначення події
    • Додавання нових подій
    • Додавання нових властивостей
    • Ієрархія простору імен System.Windows.Forms
    • Засоби базового класу Control
    • Події клавіатури
    • Події перевірки
    • Графіка: Gdi+
    • <Простий вивід
    • Виведення тексту
    • Приклад: виведення всіх шрифтів в системі
    • Друк
    • Багатосторінковий вивід
    • Про клас Printpageeventargs
    • Елемент Printdialog і конфігурація друку
    • Самостійне програмування друку

    Майже у всіх матеріалах по .NET-программированию, публікованих в журналах і Інтернеті, основна увага приділяється web-службам, використанню броузера як платформи програмування, ASP .NET і іншим темам, так або інакше пов'язаним з Web. Численні удосконалення в області графічного Windows-программирования на стороні клієнта удостоюються хіба що коротких згадок. Як би дивно це не звучало для продукту Microsoft, про програмування графічних застосувань в Visual Studio було сказано дуже мало хорошого; адже в цій області з'явилися багато нововведень, яких програмісти VB чекали протягом декількох років!

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

    Visual Studio IDE на відміну від попередніх версій VB в процесі роботи генерує програмний код — і ви повинні розуміти цей код, щоб витягувати максимум користі із засобів побудови клієнтських застосувань в .NET.

    Ми не витрачатимемо час на просторові міркування про технології прискореної розробки додатків (RAD, Rapid Application Development) в IDE [ У VB .NET, як і в колишніх версіях VB, підтримується візуальна побудова призначеного для користувача інтерфейсу, а нові властивості (такі, як Anchor і Dock) значно спрощують його розробку. ]і на описи властивостей, методів і подій різних елементів — для нормального викладу цього матеріалу знадобилася б книга удвічі більшого об'єму. Замість цього ми поглянемо на те, що відбувається з погляду програміста. Сподіваємося, читач досконально знатиметься на тому, як програмуються графічні застосування в .NET, і надалі зможе вільно користуватися документацією або знайде додаткову інформацію в книгах, присвячених графічному програмуванню.

    Після загальних відомостей про форми і елементи ми познайомимося із загальними принципами графічного програмування в VB .NET. У цій області нова мова декілька відрізняється від колишніх версій VB (наприклад, з нього зникли знайомі функції-примітиви Сircle і Line). Далі розглядається тема друку, який в .NET є окремим випадком графічного виводу. Хоча нові можливості друку невимірний ширше за тих, які підтримувалися в колишніх версіях VB, знайомий об'єкт Pri nter тепер не підтримується, і підтримка друку в програмах тепер вимагає додаткових зусиль.

    Трохи історії

    Для роботи з формами в колишніх версіях VB використовувався механізм Ruby Forms. Він був версією програми Ruby, написаної Аланом Купером (Alan Cooper); в результаті об'єднання Ruby з Quickbasic з'явився Vb11. Таким чином, розробка графічних застосувань в колишніх версіях VB залежала від механізму форм, робота якого була практично повністю прихована від програміста. Стартова форма, немов по чарівництву, з'являлася на екрані, а елементи розміщувалися на формі програмістом на стадії конструювання [ У Vb6 елементи могли додаватися і під час роботи програми, але дана можливість майже не використовувалася із-за украй незручного механізму перехоплення подій в цих елементах. ]. У програмах С/с++ процес ручного створення вікон і елементів на формах був справою в кращому разі непростим, і в цій області VB володів безперечними перевагами. Втім, у цього чарівництва була і оборотна сторона — механізм Ruby Forms був недостатньо гнучким. Він погано розширювався, і програмістові доводилося миритися зі всіма недоліками в його реалізації. Можливості використання форм і елементів VB були обмежені; у будь-яких нестандартних ситуаціях програмістові доводилося широко використовувати функції API і перехоплювати стандартні повідомлення Windows в потворних конструкціях з субклассированієм [ Деякі пакети незалежних фірм (наприклад, Desa ware Spy Works) спрощували процес субклас-сированія, але завдання все одно залишалося непростим. ]. Навіть таке просте завдання, як створення списку, з прискореним пошуком вимагало виклику функції API; стандартна операція включення нових рядків в список ускладнювалася тим, що властивість Items списку була доступна тільки для читання (на щастя, в VB .NET ці проблеми вирішуються елементарно [ Наприклад, щоб швидко заповнити список, досить привласнити колекцію властивості Datasource. ]).

    Більш того, багато програмістів не розуміли, чим же насправді були форми VB — класами або екземплярами класів? У якомусь сенсі і тим і іншим. В результаті програма виглядала вельми дивно:

    Forml.Show ' Я - екземпляр

    Dim newform As New Forml ' А зараз я - клас

    newform.Show

    Програмісти вважають за краще працювати з логічними і послідовними моделями, а з погляду ООП механізм форм в ранніх версіях часто виглядав як нагроможденіє штучних і неузгоджених «латок». У VB .NET ситуація повністю змінилася. Тут форми є екземплярами класу Windows. Forms. Form, і поведінка форм може змінюватися за допомогою спадкоємства точно так, як і поведінка будь-яких інших класів .NET Framework. Наприклад, код спеціалізованої форми може починатися з наступного заголовка:

    Public Class Myform

    Inherits System.Windows.Forms.Form

    Після цього форма наділяється новими можливостями, для чого програміст або перевизначає члени батьківського класу Form, або додає в нього нові члени, як для будь-якого іншого класу (див. розділ 5).

    У колишніх версіях VB елементи навіть не вважалися за повноцінні класи, тому команди на зразок наступної були неприпустимими:

    Dim mybutton As New Commandbutton

    Перед нами класичний приклад логічного зв'язку «є окремим випадком», ідеально відповідний для спадкоємства, проте програміст не міг визначити новий варіант кнопки як похідний від базового класу стандартної кнопки.

    Можливості створення нестандартних елементів, що з'явилися в Vb5, були засновані на включенні і делегуванні, причому в цьому процесі використовувалася одна з самих непередбачуваних програм-майстрів (wizards) — не говорячи вже про те, що елементи, побудовані в Vb5 і 6, дещо відрізнялися від елементів, побудованих на інших мовах (наприклад, C++ і Delphi).

    У .NET елементи і форми є класами. Як буде показано нижче в цьому розділі, VB .NET дозволяє визначити новий клас текстового поля, що починається із заголовка наступного вигляду:

    Public Class Positivelntegertextbox

    Inherits System.Windows.Forms.TextBox

    Далі програміст перевизначає або додає методи, як в будь-якому іншому класі, причому отриманий елемент нічим не відрізняється від елементів, написаних на С# або керованому C++.

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

     




    :: Наша кнопка ::

    Отримати код:

    Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


    :: Реклама ::

    Скачати безкоштовно програму Microsoft Front Page 2003


    :: Посилання ::

    -


     

     

     


    Copyright ©