Windows Forms

Што се Windows Forms

Windows Forms е име за креирање графички апликации чија поддршка е содржана во Microsoft

.NET технологии.

Користејќи  ја оваа технологија (frameworka), можно е да се креираат Microsoft апликации што сме навикнати да ги гледаме преку оперативниот систем Microsoft Windows.

Формите за Windows се случаи на класа (конкретно класата Форма) и како такви подлежат на правила за OOP.

8. 2. Уредување на својства

Секоја форма што ја создаваме има свои специфични својства како што се димензии, боја, име, текст што е отпечатен во заглавието на формата, итн. Пристапуваме до својствата на формата преку прозорецот Карактеристики.

Слика 15 - Својства на Windows Forms

Секоје својство нуди различни можности. На пример, својството „ Text“ се однесува на етикетата во заглавието на формата, а својството „Name“ се однесува на името на самата форма. Нема смисла да навлегувате во детали и да го опишувате секое поединечно својство.

 

Дејства / Настани (Events) на Windows Forms

Настаните се дејствија што можат да се извршат на елемент, или во овој случај на Windows Формaтa. Во прозорецот Properties, треба да се префрлите на приказ на  Events.

Симболот на настанот е во форма на молња. Сега гледаме список на достапни настани на формата,  кои има и многу. Нема смисла да ги запомните сите, бидејќи повеќето настани многу добро го опишуваат со нивното име она на што се однесуваат. На крајот, ако не можете да најдете настан или не сте сигурни за што станува збор, напишете во Google (или некој интернет пребарувач) за што сте заинтересирани и одговорот најверојатно ќе биде во првите неколку понудени врски.

Со цел да се пријде на настан, т.е. креирајте го кодот што треба да се изврши кога се случува настан, едноставно кликнете двапати десно од името на настанот и Visual Studio ќе го генерира методот повикан за време на тој настан. Во рамките на овој метод, ние го пишуваме кодот што треба да се изврши за даден настан.

Слика 16 - Пристап до настанот

Слика 17 - Метод повикан за време на настанот (ControlAdded)

 

Бришење метод за настан

Го бришеме методот за настан во рамките на кодот каде што е генериран методот, но ќе се појави порака за грешка. Ова е сосема нормално. Откако ќе се прикаже известувањето дека имате грешки во проектот, изберете ја опцијата „ No “ или дека не сакате да продолжите со понатамошното извршување и погледнете ги грешките што се појавуваат. „Кликнете двапати“ на грешка што ќе ве одведе до дел од кодот „ dizajner“ дел од кодот за вашата форма и ќе ја избрише секоја линија во која нешто „зацрвенува“. Ова се линии што се однесуваат на избришани методи или настани, и бидејќи веќе не постојат, треба да се отстранат од „ dizajner“.

Елементи на  Windows Formi - вовед

Кои се елементите

Елементите на формата (контроли) се она што го ставаме во формата. Овие можат да бидат полиња за внесување текст, разни копчиња, контроли за избирање датуми и многу повеќе. Контролите се наоѓаат внатре во прозорецот Toolbox. Ако прозорецот не е видлив, треба да отидете под VIEW и да го вклучите саканиот прозорец.

Елементите се всушност случаи на различни класи и како такви се предмет на правилата за OOP.

Слика 18 - Лента со алатки

Додавање елементи

Ние додаваме елементи во формуларот со едноставен принцип „drag-n-drop („влечи-н-пушти“) или „двоен-клик“ на елементот. Можеме да ги распоредиме елементите по форма, да ја прилагодиме нивната ширина и висина, да напишеме текст во нив и многу повеќе.

Својства на елементите

Секој елемент има свои специфични својства што можеме да ги промениме. Логично е дека прозорецот со слика ќе има различни својства отколку, на пример, полињата за внесување текст. Пристапуваме до својствата на секој елемент преку прозорецот Properties, како што видовме за објектот Windows Forms.

 

Дејства / Настани преку елементи

Како и кај Windows Forms, елементите може да се контролираат за да се изврши код на настан. Ние пристапуваме до листата на настани преку прозорецот Карактеристики, го избираме приказот на настанот и го креираме

„Кликнете двапати“ десно од името на настанот за кој сакаме да напишеме код (идентична постапка како и за објектите Windows Forms).

Својства и дејства на елементи на Windows Formi (читање, пишување и уредување)

Ние често сакаме да ги смениме својствата на елементот во самиот код. На пример, сакаме да поставиме контрола да биде невидлива кога ќе се стартува апликацијата, но во случај да се изврши некоја друга  акција, можеби ќе сакаме привремено да ја прикажеме таа контрола на формата.

Пристапуваме до својствата на елементот како и кај другите случаи на класа (елементите на формата се всушност инстанци на класа), го внесуваме симболот на точката по контролното име и ќе се појави листа со достапни својства.

 

Слика 19 - Пристап до својствата на елементите во рамките на кодот

Во горниот пример, имаме контрола на Text Box чие име е "txtVozilo". Секоја таква контрола има својство „Теxt“ што го означува текстот внесен во таа контрола. Со овој код пристапуваме до овој својство и ја поставуваме вредноста на својството на "Ова е некој текст".

Слика 20 - Со внесување во својството Текст, се контолира содржината на  полето за текст

На ист начин можеме да ја повратиме вредноста на својствоот.

 Слика 21 - Давање на вредноста на својството Текст на  компонтата  textBox на променливата вредност.

 

Исклучоци на C # јазик

Кои се исклучоците

Исклучоци се случуваат во случај на грешки. Најбаналната грешка (но за жал вообичаен случај) е кога очекуваме корисникот да внесе број во контролата на textBox бидејќи ние исто така напишавме во контролата label" Внесете го првиот број" и целата апликација е дизајнирана како калкулатор. Се разбира, со текот на времето, податоците ќе бидат внесени погрешно (намерно или случајно).

Ако се обидеме да ја помножиме таа вредност со одреден број во тој случај, наидуваме на проблем. Истото ќе се случи ако се обидеме да ги пренесеме таквите податоци на, да речеме, на Цел број со помош на методот Parse () и да ги пренесеме на некој метод. Апликациите ќе пропаднат и ние сакаме да се заштитиме од тоа.

Исклучоците што треба да се „обработуваат“ ни помагаат овде.

Забележете дека постојат неколку главни категории исклучоци и дека различни методи создаваат различни типови исклучоци. Детални спецификации може да се најдат на официјалната веб -страница на Мајкрософт.

Обработка на исклучок (пробај / фати)

Кога имаме ситуација кога може да има погрешен пренос на вредности (на пример, пренесување текст на метод што очекува нумерички податоци), користиме „try-catch“. Во рамките на блокот "try", го пишуваме кодот што ќе се "обиде” да се изврши. Ако кодот  не може да се изврши, тогаш блокот за фаќање “catch” и кодот напишан во него ќе се повикаат автоматски.

Слика 22 - Пример за празен блок try -catch

Велиме дека ја обработуваме грешката.

Ајде да погледнеме пример:

Слика 23. Едноставен пример за справување со грешки

Во рамките на блокот „try“, ја добиваме вредноста на својството „Text“ на контролата „txtVozilo“ и се обидуваме да ја претвориме оваа вредност на стрингот во типот на податоци во цел број користејќи ја функцијата Parse (). Ако овој процес успее, кодот што стои зад делот try ќе продолжи да работи. Ако процесот на конверзија не успее (на пример, се внесува буква наместо број), се работи кодот во блокот за фаќање - catch. Во тој случај, се нарекува грешка (call Exception), која е од типот „ Exception “ и се нарекува „грешка“. Во рамките на блокот „catch“ во кој го обработуваме овој исклучок, печатиме порака до корисникот користејќи го елементот MessageBox и методот Show (), во кој го наведуваме текстот „Се случи грешка“ и го враќаме видот на грешката. Типот на грешка е зачуван во променливата "greska".

Можеме експлицитно да наведеме подетален тип на исклучок што се повикува. Исто така, честопати можеме да имаме неколку блокови за „catch“. Причината е тоа што сакаме да се обидеме да фатиме точно некаков исклучок.

Слика 24 - Повеќе блокови за фаќање при ракување со исклучоци

Во овој пример имаме два блока за фаќање. Првиот се справува со исклучок ако вредноста што е поднесена е во погрешен формат. Ако се појави друг тип на грешка, таа ќе биде фатена од друг блок за фаќање.

Фрли исклучоци (throw)

Во случај на несакани вредности, ние често сакаме намерно да предизвикаме грешка или да исфрлиме исклучок. За ова го користиме клучниот збор „ throw “.

Слика 25 - Намерно фрлање исклучоци (throw)

Во овој пример, замислуваме дека му рековме на корисникот да внесе број што е поголем од 0 (нула) и помал од 100 (сто). Ја добиваме вредноста од контролата на textBox и ја чуваме таа вредност во променлива

"Број". За објаснувачки цели, ние веруваме дека корисникот навистина внел одредена вредност. Сега останува да провериме дали внесената нумеричка вредност е внесена, односно дали бројот внесен од корисникот е во опсег од 0 до 100.

Со првиот услов „if“, проверуваме дали бројот е помал од нула. Ако е така, фрламе нов исклучок (конкретно видот ArgumentException) на кој му ја пренесуваме пораката што сакаме да се отпечати на корисникот како параметар.

Со „else-if“ тестираме дали бројот е помал од 100 и дали е, исто така, сакаме да исфрлиме нов исклучок и да му кажеме на корисникот дека не е дозволено.

Кога ќе се повика исклучок, тогаш извршувањето на апликацијата е прекинато и на овој начин гарантираме дека нема да се ппоремети.