Изграждане на графичен потребителски интерфейс с Windows Forms



страница1/16
Дата18.11.2017
Размер1.09 Mb.
Размер1.09 Mb.
  1   2   3   4   5   6   7   8   9   ...   16

Изграждане на графичен потребителски интерфейс с Windows Forms

Автори


Светлин Наков

Радослав Иванов


Необходими знания


  • Базови познания за .NET Framework

  • Базови познания за езика C#

  • Базови познания за делегатите и събитията в .NET Framework

  • Начални умения за работа с Visual Studio .NET и Windows Forms редактора му

Съдържание


  • Какво е Windows Forms?

  • Програмни компоненти. Компонентен модел на .NET

  • Програмен модел на Windows Forms. Модел на пречертаване на контролите

  • Основни класове. Йерархия на класовете

  • Класът Control. Други базови контроли

  • Форми, прозорци и диалози – класът Form

  • Основни контроли – TextBox, Label, Button

  • Поставяне на контроли във формата

  • Управление на събитията

  • Windows Forms редакторът на VS.NET

  • Стандартни диалогови кутии

  • Извикване на диалогови кутии

  • Други Windows Forms контроли. Менюта. Ленти с инструменти. Статус ленти

  • Диалог за избор на файл

  • MDI приложения

  • Валидация на данни

  • Свързване на данни (Data Binding). Навигация с CurrencyManager

  • Контролата DataGrid

  • Master-Details навигация

  • Наследяване на форми

  • Пакетът System.Drawing и GDI+

  • Печатане на принтер

  • Потребителски контроли

  • Хостинг на контроли в Internet Explorer

  • Нишки и Windows Forms

  • Влачене (Drag and Drop)

  • Конфигурационен файл на приложението

В тази тема ...


В настоящата тема ще разгледаме средствата на Windows Forms за създа­ване на прозоречно-базиран графичен потребителски интерфейс (GUI) за .NET приложенията. Ще се запознаем с програмния модел на Windows Forms, неговите базови контроли, средствата за създаване на прозорци, диалози, менюта, ленти с инструменти и статус ленти, както и с някои по-сложни концепции: MDI приложения, data-binding, наследяване на форми, хостинг на контроли в Internet Explorer, работа с нишки във Windows Forms и др.

Какво е Windows Forms?


Windows Forms е стандартната библиотека на .NET Framework за изграж­дане на прозоречно-базиран графичен потребителски интерфейс (GUI) за настолни (desktop) приложения. Windows Forms дефинира набор от класове и типове, които позволяват изграждане на прозорци и диалози с графични контроли в тях, чрез които се извършва интерактивно взаимо­дей­ствие с потребителя.

При настолните приложения, графичният потребителски интерфейс позво­лява потребителят директно да взаимодейства с програмата чрез мишката и клавиатурата, а програмата прихваща неговите действия и ги обработва по подходящ начин.


Windows Forms е базирана на RAD концепцията


В .NET Framework и особено в Windows Forms се поддържа концепцията за Rapid Application Development (RAD).

Какво е RAD?


RAD е подход за разработка, при който приложенията се създават визу­ално чрез сглобяване на готови компоненти с помощта на помощници и инструменти за автоматично генериране на голяма част от кода. В резул­тат приложенията се разработват много бързо, с малко ръчно писане на код и с намалени усилия от страна на програмиста.

При компонентно-ориентираната разработка всеки компонент решава някаква определена задача, която е част от проекта. Компонентите се поставят в приложението, след което се интегрират един с друг чрез настройка на техните свойства и събития. Свойствата на всеки компонент определят различни негови характеристики, а събитията служат за управ­ление на действията, които са предизвикани от него.


Windows Forms позволява бърза визуална разработка


Windows Forms е типична компонентно-ориентирана библиотека за създа­ване на GUI, която предоставя възможност с малко писане на програмен код да се създава гъвкав графичен потребителски интерфейс.

Windows Forms позволява създаването на формите и другите елементи от графичния интерфейс на приложенията да се извършва визуално и интуи­тивно чрез подходящи редактори, като например Windows Forms Designer във Visual Studio .NET. По-нататък в настоящата тема ще разгледаме по-подробно конкретните въз­можности, които VS.NET предоставя за създа­ване на Windows Forms приложения.


Windows Forms и другите библиотеки за изграждане на GUI


Windows Forms прилича на много други библиотеки за изграждане на графичен потребителски интерфейс (GUI), но и сериозно се различава от повечето от тях.

Windows Forms и VCL


На идейно ниво Windows Forms много прилича на библиотеката Visual Component Library (VCL) от Delphi. Приличат си в голяма степен дори самите контроли, техните имена, свойства и събития. Това вероятно се дължи до голяма степен на участието на главния архитект на Delphi Андерс Хейлсбърг в разработката на Windows Forms и .NET Framework.

Windows Forms и Visual Basic 6


По начина на разработка Windows Forms прилича много и на Visual Basic 6, който позволява визуално изграждане на интерфейса, чрез влачене на компоненти и настройка на свойства и събития, също както в Delphi.

Windows Forms и MFC


По своята мощ Windows Forms не отстъпва на по-старите средства за изграждане на GUI, например MFC (Microsoft Foundation Classes) библиоте­ката, която се използваше във Visual C++ преди Microsoft да вземат стратегическото решение разработката на GUI за Windows да преминава постепенно към .NET Framework и Windows Forms.

За разлика от MFC, при Windows Forms, интерфейсът се изгражда няколко пъти по-бързо и по-лесно и почти без да се пише програмен код.


Windows Forms и Java AWT/Swing


AWT и Swing са библиотеки за изграждане на прозоречно-базиран GUI, които се използват при Java платформата. Програмният модел на Windows Forms има съществени разлики от програмния модел на AWT и Swing и причините за това произхождат най-вече от факта, че AWT и Swing са преносими библиотеки, предназначени да работят на много операционни системи, докато Windows Forms е базирана на Win32 API.

Контролите в Windows Forms


Windows Forms съдържа богат набор от стандартни контроли: форми, диалози, бутони, контроли за избор, текстови полета, менюта, ленти с инструменти, статус ленти и много други. В допълнение към стандартните контроли Windows Forms позволява разработчиците по лесен начин да създават допълнително свои собствени контроли, които да използват като части от своите приложения.

В Интернет могат да се намерят безплатно или срещу лицензна такса голям брой библиотеки от контроли, които решават често срещани проб­леми и спестяват време на разработчика при реализацията на често сре­щани задачи. Съществуват дори цели софтуерни компании, които профе­сионално се занимават с производството на компоненти и контроли (като Infragistics, ComponentOne и българската telerik).


Windows Forms и работа с данни


Windows Forms предоставя много контроли за визуализация и редактира­не на данни – текстови, списъчни и таблични. За спестяване на време на разработчика е въведена концепцията „data binding”, която позволява автоматично свързване на данните с контролите за тяхната визуализация. Ще обърнем специално внимание на концепцията „data binding” по-късно в настоящата тема.

Вградена поддръжка на Unicode


В Windows Forms поддръжката на Unicode е вградена. Всички контроли са съобразени с Unicode стандарта и позволяват използване на много езици и азбуки (латиница, кирилица, гръцки, арабски и др.) без допълнителни настройки на Windows или на приложението.

Наследяване на форми и контроли


Windows Forms е проектирана така, че да позволява лесно наследяване и разширяване на форми и контроли. Това дава възможност за преизполз­ване на общите части на потребителския интерфейс. По-нататък в настоя­щата тема ще демонстрираме как точно се реализира това.

ActiveX контроли


Преди появата на .NET Framework Windows приложенията са били бази­рани на програмния модел “Win32”. В Win32 среда се използват т. нар. ActiveX контроли, които се реализират чрез компонентния модел на Windows (COM – Component Object Model).

ActiveX контролите представляват графични компоненти, които имат свой­ства, с които им се задават различни характеристики, и събития, чрез които се управлява поведението им.

ActiveX контролите много приличат на Windows Forms контролите от .NET Framework, но за разлика от тях се реализират с неуправляван код и преди използване трябва да се регистрират чрез добавяне в регистрите на Windows (Windows Registry).

Поради дългия период на развитие на Win32 платформата, има изключи­телно много ActiveX контроли, които са създадени с течение на годините от различни софтуерни производители.

В .NET Framework по лесен начин, без да се пише ръчно програмен код, могат да се използват вече разработени ActiveX контроли. Например можем да вградим Web браузъра Internet Explorer или четеца на PDF документи Adobe Acrobat Reader като част от наше приложение. Как точно се използват ActiveX контроли в Windows Forms ще разгледаме в темата "Взаимодействие с неуправляван код" [TODO: link].

Печатане на принтер


В Windows Forms са предоставени удобни средства за печатане на доку­менти на принтер. те предоставят достъп до всички стандартни диалози за печат, чрез които потребителите избират печатащо устройство и настрой­ват неговите характеристики. Самото печатане се извършва със стандарт­ните средства­та на .NET Framework за чертане върху повърхности.

Windows Forms контроли в Internet Explorer


При проектирането на .NET Framework е заложено Windows Forms контро­лите да могат да се изпълняват в средата на Internet Explorer или други уеб браузъри без да се застрашава сигурността на потребителя.

Тази технология е една добра съвременна алтернатива на Java аплетите и позволява разширяване на функционалността на уеб приложенията с гъвкав интерактивен потребителски интерфейс. На практика се дава въз­можност .NET приложения да се изпълняват в браузъра на клиента като се вградят в най-обикновена уеб страница (подобно на Flash технологията).


Силна поддръжка на графика (GDI+)


Библиотеката Windows Forms широко използва средствата на Windows плат­формата за чертане и работа с графични обекти (GDI+). Windows Forms позволява тези средства да се използват за създаване на собствени изображения върху различни повърхности – в прозорец, върху принтер, плотер и др. Дава се достъп до всички по-важни примитиви за чертане –текст, графични изображения, геометрични фигури (точки, линии, право­ъгълници, елипси) и т. н.

Нашето първо Windows Forms приложение


За да илюстрираме как се използва на практика Windows Forms, да разгледаме следното просто приложение:

using System;

using System.Windows.Forms;


public class SampleForm : System.Windows.Forms.Form

{

static void Main()



{

SampleForm sampleForm = new SampleForm();

sampleForm.Text = "Sample Form";

Button button = new Button();

button.Text = "Close";

button.Click +=

new EventHandler(sampleForm.button_Click);

sampleForm.Controls.Add(button);

sampleForm.ShowDialog();

sampleForm.Dispose();

}
private void button_Click(object sender, EventArgs e)

{

Close();



}

}


В него се създава прозорец, който съдържа бутон с текст „Close”. При натискане на бутона прозорецът се затваря (това се реализира чрез при­хващане и обработка на събитието "натискане на бутона").

Как да компилираме и стартираме примера?


За да компилираме горното приложение можем да ползваме конзолния компилатор на .NET Framework за езика C#:

csc SampleForm.cs

Можем да компилираме примера и от VS.NET, но за целта трябва да създадем нов Windows Application проект и да копираме кода в него.

При изпълнение на приложението, се получава следния резултат:




Как работи примерът?


Нашето първо Windows Forms приложение е доста просто. То е изградено по следния начин:

  • Дефиниран е клас SampleForm, който наследява класа System. Windows.Forms.Form. Този клас представлява главната форма на приложението.

  • В главния метод Main() първо се задава заглавие за формата. След това се създава бутон, който се добавя в списъка с контролите на формата и се прихваща събитието „кликване върху бутона”. Накрая формата се показва в модален режим (модален режим означава, че другите форми на приложението не са активни докато не се затвори текущата) и след затварянето й се унищожава.

  • При натискане на бутона се извиква събитие, което затваря формата и приложението завършва.

Примерът е доста прост и показва основните моменти при изграждането на потребителски интерфейс с Windows Forms – създаване на форми, поставяне на контроли във формите, настройка на свойствата на контро­лите и прихващане и обработване на събития.


Сподели с приятели:
  1   2   3   4   5   6   7   8   9   ...   16


©zdrasti.info 2017
отнасят до администрацията

    Начална страница