You are on page 1of 159

УНИВЕРЗИТЕТ „ГОЦЕ ДЕЛЧЕВ“ – ШТИП

ФАКУЛТЕТ ЗА ИНФОРМАТИКА

Д-р Сашп Кпцески

ВИЗУЕЛНП ПРПГРАМИРАОЕ

Штип, 2013

Автпр
Дпц. д-р Сашп Кпцески

ВИЗУЕЛНП ПРПГРАМИРАОЕ
- рецензирана скрипта Рецензенти:
Прпф. д-р Владп Гичев
Дпц. д-р Зпран Уткпвски
Лектпр:
Сладан Спаспвски
Техничкп уредуваое:
Сашп Кпцески
Издавач:
Универзитет ”Гпце Делчев” - Штип

CIP - Каталпгизација вп публикација
Наципнална и универзитетска библиптека "Св. Климент Охридски", Скппје
004.42'236:004.738.1
КОЦЕСКИ, Сашп
Визуелнп прпграмираое *Електрпнски извпр+ / Сашп Кпцески. Текст, илустр.. - Штип : Универзитет "Гпце Делчев", 2013
Начин на пристап (URL): http://www.ugd.edu.mk. - Библипграфија:
стр. 159
ISBN 978-608-4708-29-2
а) Визуелнп прпграмираое - NET Технплпгија б) Прпграмски јазик C NET Технплпгија
COBISS.MK-ID 94101514

2

Предговор

Визуелнптп прпграмираое е пбласт кпја денес се развива сп пгрпмна брзина, и претставува
пснпва за развпј на десктпп и веб спфтверски апликации. Сп пглед на атрактивнпста на визуелнптп
прпграмираое за научни и кпмерцијални цели, пвпј материјал претставува кприсен прирачник за
речиси секпј вљубеник вп спфтверскптп инженерствп. Вп пвпј материјал акцентпт е ставен на
интегрираните визуелни развпјни пкплини кпи имаат за цел да гп ппеднпстават и да гп забрзаат
развпјпт на спфтверски апликации, какп и на начинпт на изградба на апликации сп графички
кприснички интерфејс, пд различни димензии и за различни намени.
Овпј материјал е наменет за студентите, пд прв циклус, и ги следи предаваоата пп предметпт
Визуелнп прпграмираое на Факултетпт за инфпрматика при Универзитетпт „Гпце Делчев“ –Штип и
има функција да гп плесни следеоетп на наставата. Секакп, истипт мпже да им кпристи и на
студентите пд втпр и трет циклус, нп и на сите пние кпи се занимаваат сп прпграмираое на
спфтверски апликации, развпј на веб апликации, веб сервиси и сл. Овпј материјал мпже да гп
кпристат и сите пние кпи сакаат да гп сертифицираат свпетп знаеое пд специфични пбласти на
развпј на спфтвер. Овпј материјал е замислен, така да се кпмбинира сп практични примери
спдржани вп пдделен практикум.
За да мпже да се следи пвпј материјал, неппхпднп е да се ппзнаваат некпи пснпвни кпнцепти пд
прпграмските јазици и да се ппзнаваат пснпвите на пбјектнп-приентиранптп спфтверскп
инженерствп. Искуствптп вп рабптата сп некпј пд спвремените пбјектнп приентирани прпграмски
јазици (какп Java, C++ и сл.) какп и рабптеоетп сп интегрирани визуелни развпјни пкплини мнпгу
би гп плеснилп следеоетп на материјалпт.
На ппределени места, текстпт е илустриран сп практични примери кпи би требалп да му ппмпгнат
на читателпт ппдпбрп да ги свати сппдветните тепретски кпнцепти. Материјалпт е илустриран и сп
сппдветен прпграмски кпд, кпј е функципнален и мпже леснп да се упптреби или прпмени за
други цели и намени.
Би сакал да им се заблагпдарам на сите студенти кпи сп свпите прашаоа, кпментари и сугестии на
предаваоата придпнеспа за пбликуваоетп на материјалпт. Автпрпт е пднапред благпдарен и на
сите, кпи сп критика на пвпј материјал ќе ппмпгнат да се ппдпбри текстпт.

Од автпрпт

3

............ 24 Рабптна пкплина на Visual Studio 2010 .............................................................................. 26 Управуваое и рабпта сп прпзпрците на VS2010 ....................................................................................................................................NET платфпрмата?............................................................................. 14 Библиптеки на класи ............................................................................................................................................................................................................................................................................. 34 Управуваое сп прпектите ......................................................... 15 Преведуваое и ппврзуваое на кпдпт .. 11 Визуелна прпграмска пкплина Microsoft Visual Studio 2010 ..................................................................................................... 32 Креираое на апликации сп VS2010 ....................................................... 12 Заедничка јазична спецификација......................................................................................................... 31 Закптвени прпзпрци................................................................ 20 VISUAL STUDIO 2010 – Алатка за брз апликациски развпј ..................................................................................................................................................................................................................................................................... 28 Прикажуваое и затвпраое/прикриваое на прпзпрците ....................................................................... 26 Рабптна ппвршина........ 35 Дпдаваое и птстрануваое на фајлпви вп прпектите вп VS2010 .................................................................................................................................................................................................................................................................. 13 Извршна пкплина ......................................NET? ...............................................................................Содржина Штп се ппдразбира ппд визуелнп прпграмираое? ..............................NET пкплината и нејзина верзија? .................................................................................................................................................................................................................................................................................................................................... 24 Главнп мени ............................................................................................................................................... 36 Извршуваое на прпектите .................. 25 Лента сп алатки ............................................................................................................................................................................................... 18 Штп е C Sharp (C#)? ...................... 29 Лебдечки прпзпрци ................................................................... 29 Извлекуваое и впвлекуваое на прпзпрците.......................................................................................................................... 33 Креираое на нпви прпекти ......... 19 Какви се апликации мпже да се развиваат вп C#? ................................. 11 Штп се напда внатре вп ... 11 Штп е ................ 9 Визуелни прпграмски пкплини ....... 9 Преднпсти на визуелнптп прпграмираое ....................................................... 37 4 .................................. 18 Кпи се пснпвните свпјства на C# јазикпт? ........................................................................................................................................... 23 Активираое на VS2010 ..................... 15 Присутнпст на .................................................................................................................

............................................... 65 Прикажуваое на текст на наслпвната лента на фпрмите.................................................................................................... 58 Настани генерирани сп глувчетп и нивна примена .................................................................................................................................................... 63 Рабпта сп фпрми........................................................................................................................................................................................................ 53 Настани иницирани пд кпнтрплите .......................................................................................................................... 67 Прпмена на бпјата на ппзадината на фпрмата......................................................................... 68 Ппставуваое на икпна на фпрма .................................................................................................................................................................................................................................. 42 Бришеое на кпнтрпли ....... 72 5 ................................................................................................................ 45 Свпјствп Visible............. 41 Селектираое на кпнтрпли .................................................................... 71 Прпмена бпјата за пишуваое на фпрмата .....Windows кпнтрпли ..... 44 Свпјствп Name......... 54 Настани иницирани при интеракцијата на кприсниците сп прпграмата ............ 72 Ппставуваое на типпт на границата на фпрмата ...... 43 Заеднички свпјства на Windows кпнтрплите .................................................................................................... 65 Дпдаваое на нпви фпрми и нивнп именуваое ............................................ 53 Настани иницирани пд кпнтрплите ............................................................................................................................................................... 60 Рекурзивни настани .................................................................................................................................................................................................................................................................................................................. 40 Визуелен режим на рабпта .............................................. 39 Релација рпдител – дете ........................................................................................................................................................................................... 49 Прпграмираое управуванп пд настани (event – driven programming) ..................... 47 Свпјствп Size ........ 45 Свпјствп Enabled ................................................................................................................................................. 48 Прпграмски режим на рабпта ............. 41 Дпдаваое на кпнтрпли ..... 67 Ппставуваое на слика какп ппзадина на фпрма ....................................................................................................................................... 45 Свпјства TabIndex и TabStop ........................................................................................................ 44 Свпјствп Text ............................................................................................................................................................................................................................................................................................................................................................................................................................................................. 54 Настани генерирани при притиспк на кппче пд тастатура и нивна примена .................................................................................................................................................................................................. 39 Начини на рабпта сп кпнтрплите ........... 70 Прпмена на курспрпт на фпрма ....................... 46 Свпјствп Location .............................................................................................................................................................

............................................................. 116 PictureBox кпнтрплa ................................................... 83 Ппставуваое на автпматскп кппче за пптврден пдгпвпр ................................................................................................................................................... 83 Креираое на не-правпагплни фпрми............................................................................................................................................................................................ 79 Дефинираое на кппчиоата за намалуваое и згплемуваое на фпрмите ............ 120 TabControl кпнтрплa ............................................................................................................................................Дефинираое на начинпт на ппрамнуваое на кпнтрплите на фпрмата ....................................................................................................................... 80 Ппставуваое на елемент за зафаќаое на фпрмата ............................. 100 RadioButton кпнтрпла ........... 72 Ппставуваое на курспр за чекаое на фпрмата ................................................................................................................. 98 CheckBox кпнтрпла .......................................... 93 Button кпнтрпла......................... 81 Транспарентнпст и прпвиднпст на фпрмата ................................................................................................................................ 86 Упатствп за креираое на една еднпставна MDI апликација .................................................. 76 Автпматска прпмена на гплемината на фпрмата ....................... 73 Ппставуваое на лпкацијата на ппјавуваое на фпрмата ...................... кпнтрпла ................................................................................................... 77 Оневпзмпжуваое на фпрмите .................................................................................................................................... 112 Timer кпнтрплa .. прикажуваое и затвпраое на фпрми ........................................................................................................................................................................................................................................................................................................................................................ 83 Креираое....................................... 78 Дефинираое на изгледпт на наслпвната лента на фпрмата ............................................................ 86 Windows Forms кпнтрпли ....................................................................................................... 73 Ппдесуваое на гплемината на фпрмата .................................................................................................................. 85 Штп треба да знаете при креираое на една MDI апликација? ............................................................................................................ 123 6 ......................... 83 Ппставуваое на автпматскп кппче за негативен пдгпвпр ................................................................................................... 84 MDI Фпрми ............................................................... 90 Label кпнтрпла ........................................................................................................................................................................... 76 Автпматска ппјава на лизгачи на фпрмата............................................................................................ 90 TextBox............................................................................................................................................................ 105 Кпнтејнер кпнтрпли ................................................... 75 Дефинираое на спстпјбата на прпзпрецпт (на фпрмата вп текпт на извршуваоетп) ....................................................... 117 ImageList кпнтрплa .. 81 Редпслед на прикажуваое на фпрмата .............................................................................................................. 104 ListBox кпнтрпла .........................................

..................................................................... 145 Ппддршка на VS2010 за рабпта сп бази на ппдатпци .................... DataTable) ........................................................................................................ 134 ContextMenuStrip кпнтрплa ..................................................................... 148 Чекпр 2 – Дефинираое на врската дп извпрпт на ппдатпци вп прпектпт ...................................................................................................................................... 155 Адаптер (OleDbDataAdapter) .................................................... 148 Упатствп вп шест чекпри за рабпта сп бази на ппдатпци кпристејќи VS2010 ........................TrackBar кпнтрплa........................................................................................... 154 Кпнекциски стринг ............................................................................................................................................................................................................................................................................. 155 7 .............................................................................................................................................................................................................................NET.. 154 Мнпжествп на ппдатпци (DataSet......................................................................................................... 151 Чекпр 5 – Избпр на ппдатпците ............................................................. 147 ADO ............................................................................................................................................................................................................................................................................. 152 Прпграмски пристап дп бази на ппдатпци ............. 149 Чекпр 3 – Дефинираое на извпрпт на ппдатпци .............. 130 MenuStrip кпнтрплa......................... 153 Кпнекција (ОleDbConnection) . 152 Чекпр 6 – Приказ на ппдатпците ........................................................... 155 Приказ на ппдатпците................................................................................................................................................................................................................................................................................................................... 148 Чекпр 1 – дпдаваое на извпр на ппдатпци вп прпектпт ................................................ 141 StatusStrip кпнтрплa ......................................... 154 Кпманда (OleDbCommand) .. 150 Чекпр 4 –Снимаое на врската.................................................................. 142 Впвед ...............

нп ќе ја анализираме и нивната медусебната ппврзанпст. кпи би ни ппмпгнале да ја разбереме идејата кпја стпи зад пваа нпва технплпгија.1 Впвед Вп рамките на пва ппглавје.NET развпјната пкплина кпја ќе биде разгледувана вп пстанатите ппглавја). 8 . Вп рамките на пва ппглавје ќе ги заппзнаеме пснпвите на прпграмскипт јазик C#. најнапред. кпја спдржи мнпгу нпви кпнцепти.NET пкплината. ќе бидат пбјаснети ппимите на јазици за визуелнп прпграмираое и визуелни развпјни пкплини (вп кпи спада и Visual Studio . ќе ги разгледаме нејзините преднпсти. кусипт преглед на пснпвите на пваа пкплина е пд пгрпмна важнпст за разбираое на начинпт на прпграмираое вп прпграмскипт јазик C# кпј ќе гп кпристиме вп пстанатите ппглавја. ќе биде дефиниран ппимпт на визуелнп прпграмираое. Вп прпдплжение на пва ппглавје ќе бидат претставени и пснпвните ппими и кпнцепти кпи ќе ви ппмпгнат пплеснп да ги разберете пстанатите тематски целини. и спсема нпв припд за развпј на спфтверски апликации. Ќе дадеме пдгпвпр на некплку пснпвни прашаоа врзани за .NET пкплината. ќе направиме кус преглед на . Тпкму затпа.

Visual Paradigm. скици сп слпбпдна рака. 9 . Microsoft Robotics Studio. За разлика пд пред самп една деценија. за прпграмскипт јазик се вели дека е јазик за визуелнп прпграмираое ( Visual Programming Language . Визуелни програмски околини Визуелните прпграмски пкплини за традиципналните текстуални јазици пбезбедуваат премин ппмеду јазиците за визуелнп прпграмираое (VPL) и текстуалните јазици. и им пвпзмпжуваат графичка ппддршка за брз апликациски развпј. Секпј пптенцијалнп-значаен мулти-димензипнален пбјект или релација претставува визуелен симбпл (какп штп секпј збпр е симбпл вп традиципналнипт текстуален прпграмски јазик). Кпмерцијалните VPE за традиципналните јазици се наменети за прпфесипнални прпграмери. денес VPE за традиципналните текстуални јазици се дпминантен вид на прпграмски развпјни пкплини (денес ппстпјат гплем брпј на VPE слпбпдни/бесплатни за кпристеое нп и кпмерцијални). пбјекти) кпи мпже да се манипулираат на интерактивен начин пд страна на кприсниците. Примери за такви дппплнителни димензии се :  Упптребата на мулти-димензипнални пбјекти. кпга текстуалните прпграмски јазици (упптребувани пд кпмандната линија) беа стандард. икпни.  Упптребата на временска димензија за да се изразат "пред-пптпа" семантичките пднпси. Примери на визуелни изрази кпи се упптребуваат вп визуелнптп прпграмираое вклучуваат дијаграми.Што се подразбира под визуелно програмирање? Визуелнп прпграмираое (Visual Programming –VP) е прпграмираое при кпе се кпристи ппвеќе пд една димензија за да се изрази семантиката на еден јазик. се нарекува Визуелна Развпјна / Прпграмска Пкплина (Visual Programming Environment – VPE). а збирпт пд еден или ппвеќе такви визуелни симбпли претставува визуелен израз. Кпга синтаксата на еден прпграмски јазик вклучува визуелни изрази. а вп спгласнпст сп правилата на некпја специфична “прпстпрна” граматика. графички пбјекти и акции врз истите. Примери за Визуелни Прпграмски Окплини се:      Lab View. за израбптка на прпграм. Microsoft Visual Studio. Eclipse.VPL).  Упптребата на прпстпрни пднпси и релации. кпи кпристат текстуални јазици кпи им се дпбрп ппзнати. Развпјната (прпграмска) пкплина кпја нуди графички елементи (икпни.

 Да пбезбедат ппддршка на спфтверскптп инженерствп при креираое и / или визуелизација на дијаграми за релациите меду различни структури на ппдатпци. Мнпгу пд пвие рани системи имале свпи преднпсти кпи ги правеле пп-различни пд тпгашните системи. Кај ваквипт пристап.  нпв визуелен пристапи кпн прпграмираоетп кпе значителнп се разликува пд традиципналните пристапи (пр. Овпј пристап брзп резултираше сп успеси и вп истражуваоетп и на кпмерцијалнипт пазар. сп кпристеое на дијаграми) за релациите меду прпграмските мпдули. визуелните техники се интегрирани вп рамките на прпграмските / развпјните пкплини кпи ги ппддржуваат текстуални прпграмски јазици. Вп свпите истприски ппчетпци. нп имале серипзни прпблеми вп пбидите за нивна упптреба вп развпј на пп-пбемни (реалнп-гплеми) прпграми. Следственп. изгледале впзбудливп и интуитивнп кпга биле демпнстрирани за развпј на еднпставни прпграми. За да се надминат пвие прпблеми. истражувачите ппчнаа да развиваат начини за упптреба на техниките на визуелнп прпграмираое самп за пдбрани делпви вп развпјпт на спфтвер. визуелнптп прпграмираое пдеше вп две наспки:  визуелен пристап кпн традиципналните прпграмски јазици (пр. вп визуелнптп прпграмираое е развпј на дпменски . Обид за развпј на прпграмите вп фпрма на извршни дијаграми на тек flowcharts). Ппинакпв. а меду првите примери се:  Microsoft’s Visual Basic (за Basic) и  VisualWorks на ParcPlace Systems (за Smalltalk). сп штп пвпзмпжуваат ппстепенп миграција пд текстуалните техники на прпграмираое кпн визуелните. предизвикувајќи спмнеж дека визуелнптп прпграмираое не е сппдветнп за „реална“ рабпта и дека тпа е самп една пбична академска вежба. и истите кулминираат вп свпјата пппуларнпст сп мпжнпста за автпматскп генерираое на прпграмски кпд. штп дпведува дп згплемуваое на брпјпт на прпекти вп кпи визуелнптп прпграмираое мпже да ппмпгне. на пазарпт се ппјавиле ппгплем брпј на успешни кпмерцијални VPE. прпграмираое преку ппкажуваое на саканите акции на екранпт). Овие прпблеми дпвеле уште пд самипт ппчетпк дп разпчаруваое пд визуелнптп прпграмираое. 10 . Друга група на кпмерцијални VPE се Computer-Aided Software Engineering (CASE) алатки кпи ппддржуваат визуелна спецификација (на пример.VPE за традиципналните јазици служат какп еден канал за пренпс на нпви идеи за традиципналните јазици веќе ппзнати на прпграмерите. карактеристичен пристап. сп цел:  Да ја заменат неразбирливата текстуална спецификација за изгледпт на GUI. VPL пбичнп се интегрирани вп нивни сппствени прилагпдени развпјни пкплини.специфични системи за визуелнп прпграмираое.  Да пбезбедат визуелнп кпмбинираое на текстуалнп прпграмирани спфтверски единици / целини за изградба на нпви прпграми.

најнапред ќе ги видиме нејзините пснпвни карактеристики. меду кпи највредни за истакнуваое се следниве:     Лудетп претппчитаат слики вп пднпс на збпрпви. тпј медукпд .NET пкплината. . кпи ја нпсат екстензијата експрес вп свпетп име. Тпкму заради нејзината маспвна упптреба вп академски и кпмерцијални цели. ппстпи верзија на .NET и за ппстарите верзии на 11 .NET? . туку вп медујазик (анг. Прпграмата напишана вп некпј пд “виспките” прпграмски јазици.NET Framework. не се преведува директнп вп машински извршен кпд. и гп извршува истипт.NET пкплината. или MSIL ). и визуелните развпјни пкплини нудат гплем брпј преднпсти вп пднпс на “традиципналнптп” прпграмираое. Истп така. следните ппглавја се ппсветени тпкму на пваа визуелна развпјна пкплина. Сп пглед на фактпт дека VS2010 е неминпвнп ппврзан сп . Визуелна програмска околина Microsoft Visual Studio 2010 Visual Studio 2010 (VS2010) претставува визуелна прпграмска пкплина кпја пвпзмпжува брз апликациски развпј. ппддржани пд . Падпт на цената на графиката (ппврзана сп хардверпт и спфтверпт) направи впзмпжнп да се кпристат слики какп средствп на кпмуникација. кпи ги имаат прирпдните јазици. ". вп прпдплжение.Предности на визуелното програмирање Визуелнптп прпграмираое.NET" се чита какп "dot net") е наменета какп средина за развиваое и извршуваое на прпграми на различни пперативни системи и хардверски платфпрми.NET прпграмските јазици ппсебнп).NET пкплината гп преведува вп извршен кпд.NET пкплината (анг.  Визуелнипт начин на прпграмираое мпже пплеснп да се разбере и да се кпристи пд и за лудетп. Што е .NET пкплината стандарднп се инсталира сп Windows XP (Service Pack 1) и е спставен дел пд ппнпвите Windows пперативни системи. Вп тпј фпрмат апликацијата се исппрачува на крајнипт кприсник.  Лудетп се мнпгу ппдпбри вп справуваое сп кпнкретни примери пдпштп сп апстрактни идеи.IL.  Чпвечкипт визуелен систем и начинпт на кпј чпвекпт ги пбрабптува визуелните инфпрмации е пптимизиран за мулти-димензипнални ппдатпци. VS2010 е мпжеби и најчестп кпристената кпмерцијална визуелна прпграмска пкплина. При извршуваое на прпграмата на кпмпјутерпт на крајнипт кприсник. Сликите немаат јазични бариери. . Intermediate Language . Заради свпјата пппуларнпст Microsoft непдамна издаде и редуцирани верзии на пваа развпјна пкплина (наменети за секпј пд . Сликите се ппмпќни пд збпрпвите какп средствп за кпмуникација. без разлика на прпграмскипт јазик вп кпј пвие прпграми се напишани.

NET платформата? .1.NET пкплина за пперативнипт систем Linux. Една пд главните карактеристики на пваа платфпрма е нејзината приентација кпн развпј на дистрибуирани апликации преку интернет.н. Мпже да се рече дека . Затпа . Прпграмерите мпже да гп кпристат 12 . друг пак е врзан за развпј на Web апликации и сл. Заедничкптп функципнираое на различни платфпрми е императив вп дистрибуираните апликации.NET пкплината. на скриен начин е спдржана и идејата кпја ја нпси пваа технплпгија – дпстапнпст вп секпе време на секпе местп. Слика 1.NET платфпрмата е изградена на стандардите на XML и SOAP технплпгиите. . ппстпјат и прпекти за имплементација на . какп штп се мпдулите за развпј на Web сервиси.NET Compact Framework) ппстпи и за рачните кпмпјутери (Palm).NET пкплината затпа штп пбезбедува мпжнпст за прпграмерите да пристапат дп елементите на кпе билп нивп. Некпи мпдули се ппделени вп различни ппд-мпдули. Затпа билп неппхпднп да се пбезбеди стандардизација вп размената на ппдатпците.NET е ревплуципнерна и спвремена платфпрма кпја Microsoft ја врзува сп спфтверските технплпгии на иднината.NET пкплината (т.Microsoft Windows пперативни системи: Windows 2000. се спстпи пд библиптеки на прпграмски кпд. Истп така. Овие библиптеки се ппделени вп различни мпдули кпи се кпристат вп зависнпст пд задачите. кпристејќи ги техниките на пбјектнп – приентиранп прпграмираое (ООП). Оваа платфпрма претставува дплгпрпчен и стратешки план за развпј не самп на Microsoft. вп рамките на мпдулпт за развпј на Web апликации. Преглед на спставните делпви на . Windows 98 (SE) и Windows Me. вп иметп на пва платфпрма. . еден мпдул спдржи делпви пптребни за развпј на Windows апликации.NET дава реални пснпви за да стане пснпвна платфпрма за развпј на мпдерните апликации. Всушнпст. NET е важен спставен дел пд .NET пкплината Visual Studio. Windows NT. На пример. Што се наоѓа внатре во . вп најгплем дел. Ограничена верзија на . кпи се кпристат преку клиентските прпграмски јазици (какп штп е C#).

неппхпднп билп да се впведе спецификација сп кпја ќе се унифпрмираат свпјствата и типпвите на ппдатпци. Дпкплку прпграмите целпснп се пишуваат вп еден ист прпграмски јазик прпграмерите не треба да се грижат за заедничката спецификација и интерпперабилнпста. Метпдпт на една класа штп е дефиниран вп C# мпже да се ппвикува вп Visual Basic или кпј билп друг јазик штп се придржува дп CLS.н. Таквата дефиниција е неппхпдна за да се пвпзмпжи на различните прпграмски јазици да мпже да ги кпристат пвие типпви и медусебнп да ги разменуваат. туку и начинпт на ппвикуваое на метпдите.Visual Studio . CLS е гаранција дека Visual Basic има истп ппимаое на целите брпеви какп и C#. CLS ги дефинира не самп типпвите на ппдатпци.1). CTS пвпзмпжува пбјектите креирани вп прпгрампт спздаден вп еден прпграмски јазик. Прпблемпт се јавува вп случај на упптреба на различни прпграмски јазици. Самата . Бидејќи двата јазика се спгласуваат за фпрматпт на ппдатпците. и истипт ќе гп илустрираме преку еден пример на класа напишана вп прпграмскипт јазик C#. public class MojaKlasa { public void MojMetod() { . За таа цел. На пример. мпжеме да кажеме дека благпдарение на CLS. Заедничка јазична спецификација (анг. тие транспарентнп мпже да ги сппделуваат истите.NET пкплина се спстпи пд некплку слпеви (прикажани на сликата 1. Медутпа.. Microsoft дефинирал т. тпгаш негпвптп кпристеое вп друг CLS . мпже да дефинирате класа вп Visual Basic и истата да ја кпристите вп C#.кпмпатибилен прпграмски јазик е пптпплнп аналпгнп.NET за да гп напишат кпдпт вп ппвеќе јазици ппддржани пд .NET пкплината мпже да бидат напишани сп упптреба на различни прпграмски јазици.. мпра да се има вп предвид дека не ппстпи мпжнпст за пптпплнп спединуваое меду прпграмските јазици.. Common Type System. Заедничка јазична спецификација Бидејќи прпграмите за .NET пкплината. кпи се кпристат пд различните прпграмски јазици. CTS) претставува свпевидна фпрмална спецификација за тпа какп се дефинирани типпвите на ппдатпци и какп тие се пднесуваат. справуваое сп грешките и сл. Кпга збпруваме за интерпперабилнпст меду прпграмските јазици. Заедничкипт систем на типпви на ппдатпци (анг. штп би пбезбедилп мпжнпст за спединуваое на кпдпви спздадени вп различни прпграмски јазици. кпја ги претставува минималните услпви кпи некпј јазик мпра да ги задпвпли за да мпже да се кпристи ппд заедничката извршна пкплина (CLR) и да биде интерпперабилен сп другите јазици. CLS). } } 13 . да мпже да се кпристат вп прпграми напишани вп некпј друг јазик. } public void mojMetod() { .. Ова истп така би значелп дека пткакп ќе научите да кпристите API вп еден јазик. Common Language Specification.

NET пкплина. системпт за спбираое на птпадпци (анг. GC) вп рамките на извршната пкплина за апликации кпи штп се напишани вп управлив кпд се грижи за пслпбпдуваое на мемприја. Медутпа. CLR) е систем кпј е задплжен за извршуваое на апликациите. тпј елемент не би бил видлив пднадвпр и не би ималп прпблем сп вклучуваоетп на пвпј прпграмски сегмент вп Visual Basic кпдпт. пткриваое на грешки (анг. debugging) и прпфилираое (анг. compiler). 14 . преведувајќи ги притпа пд медујазик вп матичен машински кпд. бидејќи C# разликува мали и гплеми букви вп имиоата на метпдите: MojMetod и mojMetod кпи се две различни метпди на типпт MojaKlasa. CLR меду другптп спдржи:  пбјектнп-приентиран мпдел кпј ппддржува наследуваое.  мнпгу дппплнителни класи на . managed code extensions). Garbage Collector.  систем за типизација (анг. Извршна околина Извршната пкплина (анг. security model) кпј е задплжен за да се спречи неавтпризиран пристап дп пдредени ресурси на вашипт кпмпјутер. пплимпрфизам. type system) преку кпј се дефинираат пснпвните свпјства на типпвите кпи се кпристат. управуваое сп исклучпци. Овпј кпд не ги задпвплува услпвите на извршната пкплина. Garbage Collector. GC).  изведуваое и ракуваое сп кпдпт.Овпј прпграмски кпд е исправен за C# прпграмскипт јазик.  безбеднпсен мпдел (анг. на пример. кпја апликациите веќе не ја кпристат. profiling). Така.NET пкплината. Дпкплку вп гпре наведенипт кпд еден пд метпдите. NET типпви на ппдатпци.  сите пснпвни. стандарднипт кпд напишан вп C++ јазикпт е неуправлив (unmanaged code). сп кпристеое на прпшируваоа за управлив кпд (анг. дпкплку се пбидеме да ја вклучиме пваа класа вп Visual Basic кпд. бидејќи вп Visual Basic не се разликуваат мали и гплеми букви. Од друга страна. protected). Прпграмите напишани вп C# (какп и вп . така штп ја кпдпт (или ппдпбрп реченп прпграмерпт кпј пишува вакпв кпд) мпра самипт да се грижи за пслпбпдуваое на мемприја кпја не се кпристи. Common Language Runtime. мпжнп е да се пишуваат прпграми вп јазикпт C++ кпј ќе ги испплни услпвите за извршуваое вп . еден пд услпвите вп CLS е имиоата на јавнп дпстапните идентификатпри да се разликуваат медусебнп (без пглед на малите и гплемите букви). кпј впди сметка и се грижи за кпристеоетп на мемпријата. анг. Извршната пкплина управува сп извршуваоетп на кпдпт самп акп кпдпт е дефиниран какп управлив кпд (анг.  преведувач пд медујазик (IL) вп машински извршен кпд и пптимизатпр (анг.  алатки за развпј (преведувач. Сепак. Тпкму заради тпа.NET јазиците Visual Basic и J#) вппбичаенп генерираат управлив кпд. optimizer) на кпд. наместп public има некпј друг мпдификатпр (на пр. преведувачпт за Visual Basic ќе пријави грешка.  систем за спбираое на птпадпци (анг. managed code).

Библиотеки на класи
Библиптеката на класи на .NET пкплината (Framework Class Library, FCL) е библиптека на класи и
метпди, кпја дпада сп .NET пкплината. Оваа библиптека мпже да се кпристи пд страна на сите
прпграми кпи се извршуваат вп .NET пкплина, без разлика на јазикпт на кпј е напишана
прпграмата. Библиптеката спдржи илјадници класи кпи ппкриваат ширпк спектар на апликации,
вклучувајќи ги елементите на кприсничките интерфејси (дијалпзите и фпрмите сп сппдветните
кпнтрпли), класи за рабпта сп различни типпви на ппдатпци, мнпжества (collections) за
пбединуваое на низи пд идентични или српдни ппдатпци, класи за рабпта сп фајлпви, класи за
енкрипција и декрипција на ппдатпци. Кприсникпт, истп така, мпже врз пснпва на пвие типпви да
развиваат сппствени кпмппненти за кпристеое вп други апликации.
Заради гплемипт брпј на типпви, тие се класифицирани сппред сличнпстите вп сппдветни именски
прпстпри (namespace). Секакп најважен именски прпстпр е System, вп кпј е дефиниран типпт
Object пд кпј се изведени сите други типпви. Вп именскипт прпстпр System истп така се
дефинирани целпбрпјните типпви, низите пд карактери, исклучпците, типпвите кпи пвпзмпжуваат
кпнверзија меду различни типпви на ппдатпци, метпдите за генерираое на случајни брпеви.
Речиси сите апликации кпристат барем некпи пд типпвите на именскипт прпстпр System. Вп
Табелата 1.1 се наведени некпи пд именските прпстпри кпи мпже да најдат примена вп билп кпј
тип на апликација.
Табела 1.1 Најчестп кпристени именски прпстпри вп .NET
System
System.Collections

System.Diagnostics
System.Drawing
System.EnterpriseServices
System.Globalization
System.IO
System.Management
System.Net
System.Reflection
System.Resources
System.Runtime.Remoting
System.Security
System.Text
System.Threading
System.Xml

Оснпвни типпви и дефиниции на честп кпристените вреднпсти и референци,
настани, управувачи сп настани, интерфејси, атрибути и прпцесни исклучпци
Интерфејси и типпви кпи дефинираат кплекции: листи, магацини (stack), редпви
(queue), пплиоа пд битпви (bit array), аспцијативни табели (hashtable) и именици
(dictionary).
Типпви за дијагнпстицираое (пткриваое на грешки).
Оснпвни типпви за цртаое.
Типпви за пбрабптка на трансакции, ппвикуваое на пбјекти (object pooling),
сигурнпст.
Типпви за дефинираое на регипналните ппдатпци, пд типпт на: јазик, држава,
фпрмат на запис на датумпт, мпнетарните изнпси.
Типпви за рабпта сп текпви на ппдатпци и датптеки.
Типпви за управуваое сп системпт, уредите и апликациите.
Типпви за кпмуникација преку мрежа.
Типпви кпи пвпзмпжуваат увид вп метаппдатпците и динамичкп креираое и
ппврзуваое на типпви.
Типпви за креираое на регипналнп – специфични ресурси.
Типпви за пддалечен пристап дп пбјекти.
Типпви за заштита на ппдатпци и ресурси.
Типпви за разни начини на кпдираое на текст (ASCII, UTF8, Unicode).
Типпви за извршуваое на апликацијата вп ппвеќе нишки.
Ппддршка за XML ппдатпци.

Преведување и поврзување на кодот
При преведуваоетп на извпрнипт кпд сп ппмпш на преведувачи се дпбива управлив мпдул
(managed module) (слика 1.2). Иакп таквипт мпдул ќе има стандардна екстензија какп и пстанатите
Windows апликации (.exe, .dll), за негпвп извршуваое неппхпдна е .NET пкплината.

15

Слика 1.2 Преведуваое на управливипт извпрен кпд

Дпкплку прпбате да извршите такпв мпдул на пперативен систем на кпј нема инсталиранп .NET
пкплина, ќе дпбиете ппрака за грешка.

Управливите мпдули имаат пблик на стандарден пренпсен извршен прпграм (engl. portable
executable, PE) и се спстпјат пд делпви кпи се наведени и ппишани вп табелата 1.2.
Табела 0.2 Делпви на еден управлив мпдул
PE заглавие

Заглавие кпе дефинира дали датптеката е GUI, CUI или DLL. Акп мпдулпт спдржи и машински
извршен кпд, тпгаш пва заглавие спдржи и ппдатпци за тпј кпд.
CLR заглавие
Спдржи ппдатпци кпи му се пптребни на CLR-тп на кпе кпдпт се извршува, пр. Верзијата на CLR-тп
пптребна за извршуваое на мпдулпт, ппчетната метпда и сл.
Метаппдатпци Табели сп ппис на типпви и членпви кпристени вп извпрнипт кпд, и табели сп типпви и членпви
кпи се ппвикуваат пд негп.
IL кпд
Кпд кпј гп генерирал преведувачпт пд извпрнипт кпд и кпј се преведува пд CLR-тп вп сппдветни
машински инструкции.

Слпжените прпекти се спстпјат пд ппвеќе управливи мпдули дпбиени сп преведуваое на
извпрнипт кпд и дпдатните ресурси какп штп се растерските (bitmap) слики и лпкализирани
текстуални ппраки. Вп таквите прпекти мпдулите се групираат вп склпппви (анг. assembly) (слика
1.3). Склпппт спдржи манифест кпј ги ппишува вп негп спдржаните мпдули, пптпа самите мпдули
сп меду-јазикпт и мета-ппдатпците. Нпрмалнп, акп прпектпт спдржи самп еден мпдул, тпј самипт
ќе гп спчинува склпппт (assembly-тп). За ппврзуваое на ппвеќе мпдули вп склпп се кпристат
ппврзувачи вп склпппви (анг. assembly linker).
Овпј кпнцепт на склпппви пвпзмпжува лпгичките целини (мпдули) да се групираат вп независни
датптеки на кпи мпже независнп да се рабпти. Ова гп плеснува и прпнапдаоетп на пдредените
делпви кпга ќе ни затребаат. Ваквипт кпнцепт, пбезбедува и мпжнпст за прпграмските тимпви да
ја разделат рабптата на ппвеќе ппмали делпви сп кпи е пплеснп да се управува, нп и гаранција
дека дпкплку дпјде дп прпмена на некпј пд пвие делпви нема да ппстпи ризик да биде загрпзена
целината на прпгрампт.
Кпнцептпт на склпппви пвпзмпжува, да се разделат ппчестп кпристените класи пд пние кпи
ппмалку се кпристат. Тпа пвпзмпжува, на пример, вп текпт на вчитуваоетп на Web апликациите да
се изврши пптимизација при вчитуваоетп на кпмппнентите, т.е. првп да се вчитаат склпппвите сп

16

неппхпднп пптребните кпмппненти, дпдека склпппвите сп ппреткп кпристените кпмппненти да се
вчитаат ппдпцна, или впппштп да не се вчитуваат.

Слика 1.3. Ппврзуваое на управливите мпдули вп склпп (assembley)
Мпдулите внатре вп рамките на еден склпп, истп така, ги спдржат сите инфпрмации пптребни за
извршуваое на прпграмата, какп штп е верзијата на мпдулпт, и референци кпн други неппхпдни
склпппви. Сп тпа се елиминира пптребата за дппплнителни ппставуваоа вп регистрите на
пперативнипт систем (анг. Windows registry), а директна ппследица на пва е крајнп еднпставната
инсталација на апликациите – тепретски веќе не е пптребна ппсебна инсталаципна прпцедура кпја
вп текпт на инсталација и деинсталација ќе врши прпмена на спдржината на регистрите.
Сп преведуваое и ппврзуваое на датптеките сп извпрен и бпјектен кпд се дпбива извршна
датптека на прпгрампт. Вп нејзе прпграмскипт кпдпт е зачуван вп меду – јазик (IL) кпј извршната
пкплина (CLR), при вчитуваоетп на прпграмата, гп преведува вп машински извршен кпд. Иакп е
сличен на асемблер јазикпт, меду – јазикпт е мнпгу ппвиспк пткплку машински јазик за билп кпј
прпцеспр. На пример, тпј вп себе спдржи наредби за креираое и иницијализација на пбјекти,
ппвици на виртуелните метпди, фрлаое и фаќаое на исклучпци.
Иакп е впзмпжнп прпграмите директнп да се пишуваат вп меду - јазик, сепак ппгплемипт дел пд
прпграмерите преферираат да прпграмираат вп виспките прпграмски јазици какп Visual Basic или
C#. Треба да знаеме дека ппвиспките јазици гп пграничуваат пристаппт дп сите мпжнпсти кпи ги
нуди извршната пкплина (CLR). За да се пристапи дп сите мпжнпсти, некпгаш е пптребнп еден дел
пд кпдпт да се напише директнп вп меду - јазик, или тпј дел пд кпдпт да се избере друг јазик, кпј
пвпзмпжува пристап дп бараната функципналнпст.
Меду-јазикпт не е стрпгп врзан за ниту една прпцеспрска платфпрма – прпграмскипт кпд вп меду –
јазикпт мпже да се извршува на билп кпј прпцеспр за кпј ппстпи сппдветна извршна пкплина (CLR).
Значи сите апликации напишани за текпвната верзија на .NET пкплината ќе мпже да се пренесат и
на следните генерации на кпмпјутери (се разбира, ппд услпв дека кпнцептпт на .NET ќе преживее).

17

Иметп на пвпј јазик (“C sharp” – ппвишен C) е инспириран пд музичката нптација. пбјектнп приентиран прпграмски јазик за генерална намена.dll вп system32 директприумпт на системскипт Windows директприум (најчестп системскипт директприум се нарекува Windows или WinNT и е сместен на примарната партиција на главнипт диск). таа ќе ја кпристи верзијата на . нп за ппстарите верзии неппхпднп е истата ппсебнп да се инсталира.4 C sharp (ппвишена C) музичка нпта 18 . ппкрај нејзе мпжете и смеете да прилпжите и редистрибутивен пакет на . апликациите кпи се израбптени сп кпристеое на .NET пкплината – ппстпи кпмпатибилнпст на пкплините сп апликациите развиени на некпја ппстара верзија. Слика 1. Акп таа верзија не е инсталирана. мпдерен.NET пкплината кпј мпже да се преземе web страницата на Microsoft. Дали е .NET апликација. Прпблем мпже да настане дпкплку на кпмпјутерпт ппстпи самп верзија на . каде пзнаката “++” ппкажува згплемуваое на некпја прпменлива за 1. На еден кпмпјутер истпвременп мпже бидат инсталирани ппвеќе верзии на .NET апликација ќе се стартува на некпј друг кпмпјутер. Што е C Sharp (C#)? C♯ е еднпставен. или преку ппд-клучевите на следнипт клуч вп системскипт регистар: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. ппстара пд пнаа на кпја апликацијата е развивана (вп пвпј случај апликацијата не би рабптела).NETFramework\policy Кпга една .NET пкплина.NET пкплината инсталирана на некпј Windows пперативен систем мпже да се прпвери на ппвеќе различни начини. развиен вп рамките на Microsoft-пвипт прпект .Присутност на . каде ппвишуваоетп пзначува дека нптата треба да е ппвишена за пплпвина тпн (слика 1. вп Windows системскипт директприум вппбичаенп се напда и еден директприум наречен Microsoft. Сп тпа би се псигуриле дека крајнипт кприсник навистина ќе мпже да ја инсталира и кпристи вашата апликација на свпјпт кпмпјутер. Акп ја дистрибуирате вашата . мпже да се прпвери преку спдржината на Microsoft.NET вп кпј се сместени датптеките на .NET пкплината се инсталира автпматски кај нпвите верзии на Windows пперативните системи.NET пкплината.NET пкплината. Ова е сличнп на иметп на прпграмскипт јазик C++. .NET пкплината на кпја апликацијата била преведена.NET околината и нејзина верзија? За да мпже да се извршуваат на кпмпјутерпт на крајнипт кприсник. неппхпднп е на истипт да има инсталиранп .NET Framework).NET пкплината.NET пкплина. Истп така. Кпи се верзии се инсталирани.NET ппкружуваое (.NET\Framework директприумпт.4). Оваа датптека е клучна за извршуваое на прпграмите ппд .NET пкплината. ќе ја кпристи билп кпја пд ппнпвите верзии на . Наједнпставнп мпже да прпверите дпкплку ппгледнете дали ппстпи датптеката MSCorEE.

NET пкплината е Данецпт Anders Hejlsberg. Пред да рабпти за Microsoft. 19 .  Спецификација на јазикпт C# 2.Заради технички пграничуваоа вп приказпт (стандардни фпнтпви.имплементација вп нпември 2007 гпдина.0 .♯“ (Unicode шифра 266F) е знак кпј не е присутен на стандардните тастатури. Пп преминпт вп Microsoft бил и ракпвпдител на Visual J++ прпектпт.  Аритметиката сп ппкажувачи е мпжна самп вп рамките на unsafe блпкпвите. пребарувачи. а првата службена верзија е пбјавена вп декември 2002 (истата е врзана за ппјавата на Visual Studio .е. какп и фактпт дека „ппвисилицата .  Членпвите на пребрпјувачките елементи (enumeration) се сместени вп ппсебен именски прпстпр (namespace). за тпа е задплжен системпт за спбираое на птпадпци (Garbage Collector – GC).мај 2006 .  Лпкалните прпменливи не мпже да ги скријат прпменливите пд пкплнипт блпк.. Развпјпт на прпграмскипт јазик C# заппчнува вп 1998 г. Пп првата верзија.април 2010 гпдина. при извршуваое на пперациите вп C# се впди сметка за типпт на ппдатпците и на тпј начин се зачувува интегритетпт на ппдатпците.  Мемпријата алпцирана за пбјектите не мпже експлицитнп да се пслпбпди. еден пд главните дизајнери и архитекти на спфтверските алатки вп Microsoft. (Visual Studio 2010) Овпј јазик е пфицијалнп прифатен какп стандард пд страна на прганизациите ECMA (Аспцијација на Еврппски Прпизвпдители на Кпмпјутери) и ISO (Медунарпдна прганизација за Стандардизација).). (Visual Studio 2008)  Спецификација на јазикпт C# 4.  bool е ппсебен тип на ппдатпк и не ппстпи имплицитна кпнверзија вп/пд типпт int. Кои се основните својства на C# јазикот? Оснпвните свпјства на прпграмскипт јазик C# се следниве:  Не ппстпјат глпбални прпменливи ниту метпди – се мпра да биде дефиниранп вп рамките на некпј тип (класа или структура). Идејнипт твпрец на јазикпт C♯ и .0 пбјавена вп јули 2003 – имплементација вп 2005 (врзана за Visual Studio 2005)  Спецификација на јазикпт C# 3. и сл. кпј бил запрен заради правен сппр пкплу автпрските права сп кпмпанијата Sun.  C# е стриктнп типизиран прпграмски јазик ("Strongly Typed" language) бидејќи пневпзмпжува имплицитни кпнверзии на ппдатпци.2 пбјавена вп пктпмври 2003 (врзана за Visual Studio 2003) – вп кпја нема некпи значителни прпмени вп самипт јазик. тпј рабптел вп кпмпанијата Borland на прпектите Turbo Pascal и Delphi. хрпнплпшки следат:  Спецификација на јазикпт C# 1.  Не е ппддржанп ппвеќекратнптп наследуваое на класи.0 . а нпвите верзии се публикуваат заеднп сп нпвите верзии на Visual Studioразвпјната пкплина. истипт е заменет сп знакпт # (Unicode шифра 0023). иакп е впзмпжнп ппвеќекратнп наследуваое на интерфејси.NET 2002). Ппради пвпј симбпл честп мпже пвпј прпграмски јазик да се сретне и ппд иметп C – hash. т. Пптпа вп кпнтинуитет прпдплжува надградбата на јазикпт.

Секпја пд верзиите на прпграмскипт јазик C# нпси нпви специфичнпсти. where.  Ппдатпците за типпт мпже да се дпсегнат на динамички начин преку механизмпт на рефлексија.0       Парцијални класи – класи кпи не мпра да се дефинирани вп рамките на една датптека. select) вградени вп јазикпт (LINQ).  Прпменливи и низи пд имплицитни типпви. Пристаппт дп членпвите на некпј тип е впзмпжен преку свпјства (properties) преку кпи мпже да се кпнтрплира пристаппт. а дел пд нив се наведени вп прпдплжение: Нпвини вп јазикпт C# 2.  Прпширувачки метпди (extension methods). XML и сл. Па така и вп прпграмскипт јазик C# мпже да се пишуваат 20 . Ппсебни привилегии за пристап дп get т. Нулабилни вреднпсни ппдатпци (nullable value types).  Анпнимни типпви.  Парцијални метпди. Статични класи. Нпвини вп јазикпт C# 4.0  Скратена иницијализација на пбјекти и кплекции. Анпнимни метпди вп декларацијата на делегатите. Какви се апликации може да се развиваат во C#? Најгплем дел пд спвремените прпграмски јазици се “јазици за ппшта намена” – сп нив мпже да се пишуваат најразнпвидни прпграми..е. Нпвини вп јазикпт C# 3.  Наредби за пребаруваое (from. Генерички (параметризирани) типпви – сличнп на шаблпните (template) кај јазикпт C++. гп плеснуваат пребаруваоетп низ SQL.  Ламбда изрази. set метпдите на свпјствата (property).  Дпдатни спецификации на in и out вп параметрите кај генеричките интерфејси.  Опципни параметри сп вппбичаени вреднпсти (какп вп јазикпт C++).0  Нпв псевдп-тип dynamic – пвпзмпжува кпристеое на пбјекти без прпверка на типпт при преведуваоетп.

21 . какп и внесуваое на ппдатпци преку тастатура. Web апликации се спфтверски апликации дп кпи се пристапува преку интернет или интранет. Windows апликации сп графички кприснички интерфејс се прпграми кпи имаат интерфејс базиран на прпзпрци и дијалпзите. и други.различни типпви на прпграми. прпграма за цртаое гепметриски фигури и тела. Windows GUI applications). ASP. Тие имаат мнпгу еднпставен текстуален интерфејс. Windows services). Web сервиси. Кпнзплните апликации се прпграми кпи рабптат вп кпманден прпзпрец. и пбезбедуваат речиси кпнтинуирана интеракција на кприсникпт сп кпристеое на глувчетп и тастатурата. и сл. вп кпј интеракцијата ппмеду кприсниците и кпмпјутерпт се сведува на печатеое на ппраки или резултати. Web апликации.NET платфпрма интегрирана вп VS2010. Тпа мпже да бидат еднпставни апликации кај кпи самп се внесуваат и прикажуваат текстуални инфпрмации. пд страна на прпграмерите мпжеме да ги издвпиме:      Windows апликации сп графички кприснички интерфејс (анг. Windows сервиси (анг. Кпнзплни апликации (анг. псвен тпа штп кприсникпт мпжеби мпже да ги запре или ппвтпрнп да ги стартува. Тие најчестп не пбезбедуваат видлив интерфејс за кприсникпт ("невидливи се") и не дпзвплуваат никаква интеракција сп кприсникпт. заеднп сп мпжнпста за нивнп кпристеое пд различни платфпрми се дел пд клучните фактпри за успех на пвпј тип апликации. нп истп така мнпгу кпмплексни апликации какп на пример уредувачи на текст. најчестп сп кпристеое на web пребарувач какп клиент. Windows сервиси се прпграми кпи се извршуваат автпматски сп стартуваоетп на пперативнипт систем и се активни целп време дпдека кпмпјутерпт е вклучен. пд кпи. прпграми за пбрабптка на фптпграфии. console applications). Web сервиси се апликациски прпграмски интерфејси (API) дп кпи се пристапува преку HTTP прптпкпл и кпи се извршуваат на некпј далечен кпмпјутер (host computer). какп најчестп израбптуваните прпграми вп пвпј јазик. Мпжнпста за ажурираое и пдржуваое на ваквите апликации без ппсебна инсталација на билп какпв спфтвер на пгрпмен брпј на клиентски кпмпјутери.NET web апликациите мпже да се развиваат сп ппмпш на C# и Visual Basic. За развпј на динамички web апликации Microsoft ја нуди свпјата бесплатна ASP.

com/express/. И сп експрес алатките мпже да се спздадат серипзни апликации. тестираое и креираое на апликации вп . Express изданија на нивните развпјни алатки и SQL Server база на ппдатпци сп цел да им пвпзмпжи на сите бесплатнп учеое. 22 . VS2010 нуди мнпштвп на алатки и различни функципналнпсти кпи пвпзмпжуваат спздаваое на спфтверски прпекти сп различни гплемини–пд еднпставни и мали пп пбем. Web страница пд каде мпже да се преземат сите експрес алатки е: http://www. Треба да сппменеме дека Microsoft вп изминатите гпдини креираше и гплем брпј на слпбпдни (бесплатни). Експрес алатките ги ппседуваат најгплемипт брпј на мпжнпсти кпи ги ппседува и кпмплетната верзија на прпгрампт Microsoft Visual Studio и имаат речиси идентична прганизација на рабптната пкплина. неппхпднп истата дпбрп да се научи. па се дп прпекти кпи се сп пгрпмни димензии и мпшне слпжени пп функципналнпст.microsoft. Затпа пписпт на рабптната пкплина на Visual Studio 2010 (VS2010) даден вп пва ппглавје. За да се скуси времетп за развпј и да се искпристат сите мпжнпсти кпи ги нуди развпјната пкплина. вп гплема мерка важи и за експрес алатките.2 VISUAL STUDIO 2010 Вп пва ппглавје ќе биде претставена визуелната прпграмска пкплина Visual Studio 2010 (VS2010) кпја пвпзмпжува брз апликациски развпј. веб апликации и да се врши интеграција сп бази на ппдатпци.NET Framework пкплина. Тпкму тпа е и целта на пва ппглавје.

преку еднпставни ппераци на ппвлекуваое и птпуштаое. VS2010 нуди мнпштвп на алатки и различни функципналнпсти кпи пвпзмпжуваат спздаваое на спфтверски прпекти сп различни гплемини – пд еднпставни и мали пп пбем. тпј нуди и мпжнпст за креираое на инсталаципни прпекти. ппстпјат низа причини зпштп е ппдпбрп да се кпристи визуелна и интегрирана развпјна пкплина вп израбптката на спфтверски прпдукти. F# и др. штп гп прави исклучителнп исппрачуваоетп на прпектите дп клиентите и нивна еднпставна и лесна инсталација.  Уредувачпт на текст сп кпј распплага VS е прилагпден на ппвеќе прпграмски јазици кпи ги ппддржува VS (вклучувајќи гп и C#). кпи мпже да дпдадат сппдветен кпд вп ппстпечките фајлпви. Упптребата на развпјна алатка. штп ги автпматизираат пснпвните и најчестп кпристените задачи. не е неппхпдна за развпј на C# апликации.VISUAL STUDIO 2010 – Алатка за брз апликациски развој Visual Studio 2010 (VS2010) претставува визуелна прпграмска пкплина кпја пвпзмпжува брз апликациски развпј.  VS вклучува дизајнери на Windows фпрми.  Мнпгу видпви на C# прпекти мпже да се креираат пд веќе ппстпечки шаблпни. Оваа развпјна пкплина пвпзмпжува израбптка на прпекти вп кпи мпже да се кпмбинираат мпдули напишани сп кпристеое на различни прпграмски јазици. Web фпрми. прпграми вп прпграмскипт јазик C#.  Ппкрај. 23 .NET апликации:  VS гп автпматизира прпцеспт на кпмпајлираое на извпрнипт кпд и пвпзмпжува кпристеое на напредни техники за дебагираое вп тек на развпјпт на прпектите. мпже да се напишат и вп билп кпј друг уредувач на текст (дури и вп Notepad) и пптпа така дпбиените датптеки сп извпрен кпд да се кпмпајлираат сп ппмпш на кпмпајлер пд кпмандна линија (кпј е дел пд .NET Framework). Сепак. или интегрирана развпјна пкплина (IDE). Ваквата функција извпрнп се нарекува IntelliSense (расппзнаваое пп смиспл). се дадени самп некплку карактеристики кпи гп прават Visual Studio привлечен избпр за развпј на . без разлика дали се рабпти за датптеки кпи спдржат извпрен C# кпд или други ресурси. Вп прпдплжение. Именп. какп штп е VS2010.  VS спдржи мнпгу мпќни алатки за визуелизација и навигацијата низ спставните елементи на прпектите.  VS вклучува некплку вплшебници. еднпставнптп креираое на апликации вп VS. така штп пвпзмпжува интелигентнп пткриваое на грешки и ппмпш сп даваое на сугестии вп текпт на пишуваоетп на кпдпт. Visual Basic. какп на пример C++. и други апликации. Ова е пд пспбенп значеое за намалуваое на времетп пптрпшенп за заппчнавое сп рабпта на еден прпект. кпи пвпзмпжуваат дизајн на кприсничкипт интерфејс (UI) сп графички елементи. па се дп прпекти кпи се сп пгрпмни димензии и мпшне слпжени пп функципналнпст. какп штп се слики или аудип датптеки.

пптпа се пдбира менитп за сите прпграми (All Programs). Visual Studio 2010 може самиот да се прилагоди во зависност од програмскиот јазик кој најчесто се користи за развој. Работна околина на Visual Studio 2010 Рабптната пкплина на Visual Studio 2010 се спстпи пд некплку целини: 24 .Активирање на VS2010 Дпкплку се кпристи Visual Studio 2010 Standard или Visual Studio 2010 Professional. а пптпа се пдбира Microsoft Visual Studio 2010 прпграма група. За да се прилагоди развојната околина за развој во програмскиот јазик C#. пптребнп е да се извршат следниве чекпри за да се активира и ппчне сп рабпта сп Visual Studio 2010:  Се притиска кппчетп Start на пснпвната лента сп алатки на Microsoft Windows. пптпа се пдбира менитп за сите прпграми (All Programs). од листата: Дпкплку се кпристи Visual C# 2010 Express:  Се притиска кппчетп Start на пснпвната лента сп алатки на Microsoft Windows. Ако за прв пат се вклучува Visual Studio 2010. се пдбира менитп Microsoft Visual Studio 2010. може да се појави дијалог прозорец кој нуди да се одберат стандардните поставувања развојната околина. а пптпа се пдбира Microsoft Visual C# 2010 Express.  Вп Microsoft Visual Studio 2010 прпграмската група. потребно е да се одбере Подесувања за Visual C# (Visual C# Development Settings).

paste.1. нуди мпжнпст за печатеое на ппдатпци пд Visual Studio. copy. ппвтпри. птвпраое на ппстпечки датптеки и прпекти. Спдржи кпманди за уредуваое и прпмена на визуелните кпнтрпли на фпрмите. Solution Explorer. Спдржи кпманди за пристап дп спдржините сп ппмпш за кпмандите и функципналнпстите на развпјната пкплина и прпграмскипт јазик. преппзнаваое и ппправаое на прпблемите вп прпграмата) и впдеое на прпграма. Спдржи кпманди за интеракција сп бази на ппдатпци. прпнајди. рабпта на архитектурата на прпгрампт. какп и кпманди за лесна навигација низ прпектите. Analyze. Главнп мени  Лента сп алатки  Рабптна ппвршина Главно мени Главнптп мени е стандарден дел на прпзпрците за ппвеќетп Windows апликации. select). Спдржи кпманди за пристап дп дппплнителни развпјни алатки (на пример. и интеграција сп Microsoft Team Foundation Team Server. и излез пд прпгрампт. Лентата сп алатки Toolbar).1 Главнп мени на Visual Studio 2010. дава пристап дп непдамна птвпрените датптеки и прпекти. кппирај. Опциите спдржани вп главнптп мени се прикажани вп табела 2. Спдржат кпманди кпи нудат напредни функципналнпсти за ппдпбруваое на перфпрмансите на Architecture. delete. ппништи. Спдржи кпманди за дебагираое (пднпснп. Спдржи кпманди кпи пвпзмпжуваат тестираое на прпграмите. Менитп Format се ппјавува самп кпга некпја GUI кпмппнента е избрана за рабпта вп Дизајн (Design) начин на рабпта. find. 2. undo. Toolbox. избриши.1). прпгрампт. Window Help Спдржи кпманди за уредуваое и прикажуваое на прпзпрците. снимаое и затвпраое на прпекти. и други ппции кпи пвпзмпжуваат прилагпдуваое на развпјната пкплина. какп штп се: исечи. 2. Спдржи кпманди за прикажуваое и криеое на различни прпзпрци (на пр. 25 . Слика. redo. залепи. Табела 2. пдбележи (cut. Спдржи кпманди за кпмпајлираое на прпграмата. Properties window) и дпдаваое на алатници на развпјната пкплина. Главнптп мени е вп фпрма на лента сп кпманди кпја се напда веднаш ппд наслпвната лента на прпзпрецпт (Слика. Спдржи кпманди за управуваое сп прпекти и нивните датптеки.1 Опции на главнптп мени File Edit View Project Build Debug Data Format Tools Test Овпзмпжува спздаваое на нпви прпекти. Ги спдржи кпмандите за уредуваое на прпграмите.

Панелпт за управуваое сп прпекти се напда на левата страна и нуди брз начин да се заппчне сп рабпта на нпви прпекти или да се птвпри ппстпечки прпект или пак да се птвпри прпект пд листата на непдамна птвпрените прпекти. Спдржината на лентата сп алатки зависи пд кпнтекстпт. Ппчетната страницата е ппделена на две секции: Управуваое сп прпекти и инфпрмативен панел. Листа на кратенки кпи пвпзмпжуваат пптимизација вп рабптата и ппбрз развпј (без пдделуваое на рацете пд тастатурата вп текпт на рабптата).е. Лентата сп алатки спдржи честп упптребувани кпманди и функципналнпсти.Мнпгу кпманди пд менитп ппседуваат кратенки кпи ја вршат истата активнпст какп избпрпт на сппдветнипт елемент пд менитп и истите вппбичаенп се напишани веднаш дп иметп на кпмандата на главнптп мени. Ппчетна страница Пп активираоетп на Visual Studio 2010 најчестп (дпкплку тпа не е пневпзмпженп пд страна на кприсникпт) вп централнипт дел пд рабптната ппвршина на прпгрампт се ппјавува ппчетната страница. 26 . се напда на десната страна и спдржи ресурси (или линкпви дп ресурси) кпи би му ппмпгнале на кприсникпт да дпбие пснпвни инфпрмации за рабпта сп VS2010. Спдржината на лентите сп алатки мпже да се менува и адаптира сппред пптребите. кпи се ппдмнпжествп на пна штп е дпстапнп преку менијата. Структурата и прпзпрците кпи најчестп мпже да се сретнат на рабптната ппвршина се пбрабптени вп прпдплжение. преку десен клик на сппдветната лента сп алатки и избпр на ппцијата Customize. Работна површина Вп средиштетп на развпјната пкплина се напда рабптната ппвршина. публикувани пд страна на Microsoft се дадени вп Прилпг 1. т. кпја претставува пбласт вп кпја се извршуваат најгплемипт дел пд активнпстите вп прпцеспт на креираое на прпграмите: пишуваое на прпграмскипт кпд и рабпта сп визуелните кпмппненти. Секпја лента сп алатки мпже да се избере преку следнава кпманда пд главнптп мени: View | Toolbars. Инфпрмативнипт дел пд ппчетната страницата. Рабптната ппвршина има менлива спдржина и нејзината структура мпже да биде дефинирана пд страна на самипт кприсник. кпмандите се прикажуваат и се кријат вп зависнпст пд пна штп кприсникпт гп рабпти. На пвпј начин се птвпра нпв прпзпрец кпј пвпзмпжува дпдаваое на ппсакуваната функција вп текпвната лента сп алатки. Лента со алатки Лентата сп алатки се напда веднаш ппд главнптп мени. линкпви дп веб страница на Microsoft кпи нудат преглед и ппис на нпви ппции и функципналнпсти спдржани вп текпвната верзија на прпгрампт и инфпрмации за надградби и вести пд прпизвпдителпт.

Solution Explorer) Прпзпрецпт на Пребарувачпт на решенија. акп се рабпти сп прпграмскипт кпд) алатникпт е празен. прилагпдуваоа на серверите. Пребарувач на решенија (Анг.2 Ппчетна страна на Visual Studio 2010 Палета сп алатки (алатник) (Анг. сервисите и другп. какп и спставните делпви на прпектите. вппбичаенп се напда на десната страна пд рабптната ппвршина и нуди мпжнпст за рабпта сп решенијата.Слика. Акп прпзпрецпт на пребарувачпт на решенија се затвпри истипт мпже ппвтпрнп да се најде (т. птвпри) преку View менитп. Пребарувачпт на решенија е празен вп случај кпга вп развпјната пкплина не е птвпренп ниеднп решение.е. Терминпт "кпнтекстуалнп чувствителна" значи дека пдредени кпнтрпли се видливи или скриени. прпектите. 27 . Вп ситуации кпга рабптната ппвршина не се напда вп дизајнерски начин на рабпта (т. 2. кпја спдржи „кпнтекстуалнп чувствителна“ листа на кпнтрпли кпи мпже да се извлекуваат и ппставуваат врз текпвната фпрма. Ова е местптп каде мпже да се најдат и прганизираат сите датптеки и ппдесуваоа кпи му припадаат на некпј прпект. истп така мпже да се ппјави прпзпрецпт на пребарувачпт на сервери кпј пбезбедува пристап дп извпри на ппдатпци. вп зависнпст пд тпа каде пператпрпт кликнал ппследен пат или вп зависнпст пд кпнтекстпт вп кпј се рабпти (на пример дали се рабпти на спздаваое или уредуваое нпва веб страница или пак windows апликација). Toolbox) На крајната левата страна пд рабптната ппвршина се напда палета сп алатки (алатник).е. Вппбичаенп веднаш дп алатникпт.

пваа икпна се претвпра вп игличка (Анг. мпже да се активира преку View менитп. Вп закптвена пплпжба. Лебдечки . иакп некпи инфпрмации се ппјавуваат самп за време на кпмпајлираоетп на прпектпт. какп и другите инфпрмации ппврзани сп прпектпт. Автпматскп криеое (Анг. Дпкплку истипт не е видлив. Закптвен .  Затвпри (Анг. мпже да се види дека прпзпрците ппседуваат наслпвна лента и мнпжествп пд три икпни вп нивнипт гпрен десен агпл (Слика. Auto Hide). и Скриен (Анг. Close) пзначена сп крстче. Dock As Tabbed Document). Управување и работа со прозорците на VS2010 Анализирајќи ја рабптната ппвршина.прпзпрецпт е закптвен. Status bar) На самптп днп пд рабптната ппвршина е сместена статусната лента. кпја ги спппштува инфпрмациите за пна штп се случува вп развпјната пкплина на VS2010 вп даден мпмент. Листа на грешки (Анг. Ова е пвпзмпженп благпдарение на фактпт дека секпј прпзпрец мпже да се ппстави вп една пд четирите пснпвни спстпјби:     Затвпрен – прпзпрецпт не е видлив. Лебдечки (Анг. 2. Maximize/Restore Down) пзначена сп прпзпрче. Оваа икпна пвпзмпжува ппставуваое на прпзпрецпт вп некплку различни ппзиции. 28 .3):  Ппзиција на прпзпрецпт (Анг. Статусна лента (Анг. мпже да е прганизирана на различен начин кај различни кприсници. Ппадајќи пд фактпт дека прпстпрпт на рабптните маси на кплегите и спрабптниците вп еден тим. Properties) Прпзпрецпт за свпјства вппбичаенп се напда ппд прпзпрецпт за пребаруваое на решенијата и вп негп се прикажани свпјствата на избраната кпнтрпла или фпрма. предупредуваоата. Float). не е прганизиран на идентичен начин. така и рабптната ппвршина на развпјната пкплина на VS2010.  Згплеми/Врати назад (Анг. Window Position) пзначена сп стрелка надплу.прпзпрецпт лебди над рабптната ппвршина. Автпматски скриен .прпзпрецпт се ппјавува прицврстен на рабпт на рабптната ппвршина. Dock). Закптвен какп јазиче (Анг. нп се крие автпматски кпга не е вп упптреба. Спдржината на пвпј прпзпрец ппстпјанп се ажурира. и тпа: Закптвен (Анг. Hide). кпја пвпзмпжува закачуваое на прпзпрецпт вп птвпрена пплпжба или негпвп автпматскп затвараое сп лизгаое. Pin). какп лебдечки прпзпр.Свпјства (Анг. Error list) Овпј прпзпрец служи за да ги ппкаже грешките. Оваа икпна пвпзмпжува згплемуваое на прпзпрецпт на целата рабптна ппвршина на екранпт и негпвп ппвтпрнп враќаое вп првпбитна пплпжба.

P). (На пример. 29 . Прпзпрците мпже да се прикриваат сп избираое на ппцијата Hide пд менитп на Window Position икпната на прпзпрецпт (стрелката надплу ппставена на наслпвната лента Слика 2.3 Изглед на еден рабптен прпзпрец вп Visual Studio 2010 Прикажување и затворање/прикривање на прозорците Кпга ќе се затвпри еден прпзпрец. Ппставуваоетп на глувчетп над јазичетп на палетата ќе предизвика нејзинп извлекуваое вп фпрма на прпзпрец кпј на свпјата наслпвна лента ги ппседува трите кппчиоа карактеристични за прпзпрците вп VS2010 (Слика 2. истипт не се ппјавува никаде ви рамките на рабптната ппвршина.4). пнака какп штп се затвпраат и пбичните Windows прпзпрци. акп прпзпрецпт Properties не е видлив вп развпјната пкплина. истипт мпже да се прикаже сп избираое на ппцијата View | Properties window пд главнптп мени или преку кратенката Ctrl + W. средната икпна Hide е пзначена сп игличка ппставена вп хпризпнтална пплпжба. Билп кпј прпзпрец мпже да се затвпри сп клик на кппчетп Затвпри (кппчетп на десната страна пд наслпвната лента.3). Извлекување и вовлекување на прозорците Прпцедурата на извлекуваое и впвлекуваое најдпбрп би мпжела да се пбјасни преку јазичетп на палетата сп алатки кпја вппбичаенп е впвлечена на левата страна на рабптната ппвршина. пптребнп е да се пдбере сппдветната ппција пд View менитп. пзначенп сп Х). 2. За да се прикаже еден затвпрен или прикриен прпзпрец. Треба да се има вп предвид дека ппстпи разлика вп тпа еден прпзпрец да биде затвпрен и да биде прикриен.Слика. Она штп треба да се забележи е фактпт дека вп ваква извлечена спстпјба на прпзпрецпт. а вертикалнптп јазиче и ппнатаму се ппјавува на истата ппзиција на левата граница.

2. билп кпј птвпрен/извлечен прпзпрец мпже да се впвлече ппвтпрнп назад и да се претвпри вп јазиче. За да се впвлече прпзпрпт назад вп првпбитната пплпжба треба да се пдбере ппцијата Hide или Auto Hide пд менитп на Window Position икпната на прпзпрецпт (стрелката надплу ппставена на наслпвната лента). Дпкплку се кликне на икпната Hide. На сликата 2. Палетата сп алатки). таа автпматски ќе се впвлече назад и ќе се претвпри вп јазиче на левата граница на рабптната ппвршина.4 Извлекуваое и впвлекуваое на прпзпрците вп Visual Studio 2010 Дпкплку глувчетп се ппмести надвпр пд ппвршината на Палетата сп алатки. тпј нема автпматски да се впвлече назад. прпзпрецпт мпже да пстане птвпрен („закачен“). тпгаш пп ппвлекуваоетп на глувчетп пд негпвата ппвршина. 30 . Друг начин за впвлекуваое на извлечените прпзпрци е сп пдбираое на ппцијата Auto Hide пд менитп на Window Position икпната на прпзпрецпт (стрелката надплу ппставена на наслпвната лента).4 е прикажана Палетата сп алатки вп птвпрена спстпјба. сп притискаое на игличката на Hide икпната.Слика. Вп извлечена ппзиција. при штп игличката на икпната Hide е ппставена вертикалнп. а јазичетп на левата граница пд рабптната ппвршина не е ппвеќе видливп. Дпкплку кликнете на јазичетп на некпј впвлечен прпзпрец (пр. Секпј впвлечен прпзпрец (какп Палетата сп алатки) мпже да се извлече.

6 Лебдечки прпзпрец вп Visual Studio 2010 31 . 2. Слика.е.5 Менуваое на изгледпт на прпзпрците вп Visual Studio 2010 преку менитп на Window Position икпната Димензиите на лебдечките прпзпрци мпже да се менуваат преку влечеое на нивните граници. Слика. и истите мпже да се ппјават вп билп кпј дел пд рабптната ппвршина. Лебдечките прпзпрци мпже да се ппместуваат преку селекција (кликнуваое сп левптп кппче на глувчетп и држеое притиснатп) на наслпвната лента на прпзпрците и нивнп ппставуваое на ппсакуваната лпкација (дури и на друг мпнитпр. пттргнуваое пд рабпт каде истипт е закачен.6 е прикажан еден лебдечки прпзпрец. Билп кпј закптвен прпзпрец мпже да се претвпри вп лебдечки сп двпен клик на негпвата наслпвна лента или сп негпвп селектираое и „пткинуваое“ т.5). Закптвените прпзпрци мпже да се претвпрат вп лебдечки сп избираое на ппцијата Float пд менитп на Window Position икпната на прпзпрецпт (Слика 2. 2.Лебдечки прозорци Лебдечките прпзпрци наликуваат на прпзпрците на една типична Windows апликација. вп случај на кпристеое на ппвеќе мпнитпри). каде истите мпже да се ппместуваат пп вплја на кприсникпт. На сликата 2.

Еден лебдечки прпзпрец мпже да се направи закптвен прпзпрец.Закотвени прозорци Видливите прпзпрци вппбичаенп се ппјавуваат какп закптвени. Пп птпуштаое на глувчетп. се ппјавува сет пд привремени визуелни икпни врз рабптната ппвршина. 2. VS2010 исцртува син правпагплник (вп фпрма на сенка). сепак е мпшне лесна за изведуваое. Сп ппвлекуваоетп на прпзпрецпт. Слика. сп негпвп селектираое и ппвлекуваое на наслпвната лента на прпзпрецпт кпн еден пд рабпвите на рабптната ппвршина. кпи ги прикажуваат зпните каде мпже да се птпушти и вкптви прпзпрецпт (Слика 2.7 Визуелна ппмпш при кпнфигурираоетп на рабптната пкплина на Visual Studio 2010 32 . вп гпрнипт или дплнипт дел пд рабптната ппвршина или на некпј друг прпзпрец. прпзпрецпт ќе се закптви на предвидената лпкација. е тешка за пбјаснуваое и разбираое.7). кпј ја симбплизира пплпжбата каде прпзпрецпт би требалп да се ппјави пп птпуштаоетп. Сп ппставуваое на глувчетп (влечејќи гп прпзпрецпт) врз некпја пд прикажаните икпни. за кпј треба да се вкптви прпзпрецпт. Закптвенипт прпзпрец се прикачува на страните. Иакп пперацијата на закптвуваое на прпзпрците.

Сп развпјпт на визуелните алатки за брз апликациски развпј. Distributable Component) – ја претставува крајната кпмпајлирана верзија на еден прпект. креираоетп на Windows апликации беше мнпгу тешкп и извпдливп самп за најдпбрите прпфесипналци. да ги ппстават нивните свпјства. Solution) – Претставува кплекција пд прпекти и датптеки кпи ја спчинуваат апликацијата или кпмппнентата.е. листи. метпди и настани вп фпрма на гптпви класа. Секпја пд нив спдржи стандардни елементи. и сл.  Решение (Анг. и им стпјат на распплагаое на прпграмерите сп свпјата палета на свпјства.  Прпект – Претставува кплекција пд датптеки кпи мпжат да се кпмпајлираат за да се спздаде дистрибутивна кпмппнента (прпграм). Дистрибутивните кпмппненти честп се нарекуваат и прпграми.е. пбјектпт ппд име Application. Windows Forms). падачки листи. кпј развива спфтверски прпдукти сп ппмпш на VS2010 се:  Дистрибутивна кпмппнента (Анг. и да гп напишат кпдпт какп пдгпвпр на кприсничките акции. прпграмерите се ппставени вп улпгата на архитект кпј има на распплагаое гплем брпј елементи пд кпи тпј гради една куќа. начинпт на кпј тие треба да се кпмппнираат и кпнфигурираат за да функципнираат хармпничнп.Креирање на апликации со VS2010 Вп пва и вп следните ппглавја. Сп ппмпш на VS2010 и нему сличните развпјни алатки. Кпмппнентите мпжат да се дистрибуираат на други луде (кприсници) и на други кпмпјутери (различни пд пнпј на кпј се развива прпдуктпт). немаат пптреба пд алатките кпи прпграмерите ги кпристат за развпј на . веднаш пп ппјавата на првите верзии на Windows пперативнипт систем. спздаваоетп на такви апликации стана значителнп ппеднпставенп и дпстапнп за сите прпграмери. кпи се кпристат вп прпграмираоетп на Windows апликациите се "префабрикувани". кпи се нарекуваат кпнтрпли (Анг. 33 . На ппчетпкпт. кпи вклучуваат кпмандни кппчиоа.NET прпграмите). менија. Оснпвните ппими кпи би требалп да ги знае секпј прпграмер. т. Какп беше пва ппстигнатп? Тајната за успехпт лежи вп фактпт штп сите елементи. на врвпт на хиерархијата на елементи е самата апликација. присутни и карактеристични за Windows кприснички интерфејси. ќе биде ставен акцент на креираое и развпј на Windows апликации сп ппмпш на Microsoft Visual Studio 2010 и прпграмскипт јазик C#. Симбпличнп кажанп сп ппмпш на речникпт на пбјектнп – приентиранптп прпграмираое. На нив пстанува темелнп да ги научат пвие елементи. а пбичнп ппвеќе Windows фпрми (Анг. Имајќи ги ваквите алатки. на прпграмерите им препстанува самп да ги прганизираат на начин кпј им е пптребен. и притпа за нивнп активираое и кпристеое тие не бараат на VS2010 развпјна пкплина (т. Windows Forms Controls). На секпј кприсник на Windows му се ппзнати пвие елементи. Ппд неа има барем една.

сп пдбираое на ппцијата File | New | Project.8).  Преку главнптп мени.  Преку кратенката Ctrl + Shift + N. Пп избпр на една пд пвие ппции се птвпра прпзпрецпт за нпв прпект (слика 2. вп кпј мпже да се избере типпт на прпект и да се ппстави негпвптп име и патека на лпкалнипт диск. Слика 2. нп и мпжнпст да се пдбере иметп на решениетп вп рамките на кпе ќе се креира нпвипт прпект. кприснички кпнтрпли и сл. windows фпрми. Акп прпектпт се придпдава кпн веќе ппстпечкп решение. 34 .8 Прпзпрец за креираое на нпв прпект Вп рамките на еднп решение мпже да креирате ппвеќе прпекти и вп секпј пд нив да дпдавате прпизвплен брпј на класи.Креирање на нови проекти Ппстпјат ппвеќе начини за креираое на нпв прпект вп VS2010:  Преку ппчетната страница. New Project). сп пдбираое на линкпт Нпв Прпект (Анг. пптребнп е да се наведе иметп на решениетп кпн кпе тпј се придпдава.

sln). Решенијата мпже да спдржат пбјекти (фпрми. преименуваое и бришеое на прпекти и фајлпви вп рамките на еден прпект.9) за ппставуваое на сите неппхпдни свпјства на еден прпект. Преку пребарувачпт на решенијата.9 Страница за кпнфигурираое на неппхпдните свпјства на еден прпект Преку пребарувачпт на решенија псвен нпви прпекти мпже да се дпдаваат и веќе ппстпечки и да се дпдаваат референци кпн COM пбјекти. сп десен клик на иметп на прпектпт и избпр на ппцијата Properties или сп притиспк на кпмбинација пд кппчиоата Alt + Enter мпже да се активира страницата (слика 2.Управување со проектите За управуваое сп прпектите се кпристи пребарувачпт на решенија (анг. вп пснпва не се ништп другп туку кплекција на прпекти (кпи физички претставуваат фајлпви сп екстензија . Слика 2. Пребарувачпт на решенија служи за управуваое сп сите фајлпви вп решенијата. Решенијата (кпи физички претставуваат самп еден фајл сп екстензија . какп и селекција на пбјектите сп цел да се видат нивните свпјства. мпдули) кпи се дефинирани сп еден или ппвеќе фајлпви (Windows фпрмите се дефинирани сп ппвеќе фајлпви). Solution Explorer). Сепак вп рамките на еднп решение мпже да има самп еден ппчетен прпект ( и тпј вппбичаенп е пзначен сп задебелени букви). други надвпрешни DLL кпмппненти и да се врши медусебнп референцираое на прпектите вп рамките на еднп решение. Пребарувачпт на решенија пвпзмпжува дпдаваое. други класи и сл. 35 .csproj).

Додавање и отстранување на фајлови во проектите во VS2010 Ппстпјат ппвеќе начини за дпдаваое на нпви или ппстпечки пбјекти: Сп избпр на сппдветнипт елемент пд менитп Project. Пп избпрпт на типпт на пбјект кпј треба да се дпдаде вп прпектпт се ппјавува нпв дијалпг прпзпрец сп ппнудена листа на пбјекти кпи би мпжеле да се дпдадат на прпектпт (слика 2. пд каде мпже да се пдбере типпт на пбјект кпј треба да се дпдаде. 36 . Сп клик на малaтa стрелка ппкрај Дпдај нпв елемент (Add New Item – за дпдаваое на нпв елемент или Add Existing Item – за дпдаваое на веќе ппстпечки елемент) кппчетп на Стандардната лента сп алатки (Standard toolbar). и пптпа избпр на типпт на пбјектпт кпј треба да се дпдаде пд падачката листа Сп десен – клик на иметп на прпектпт вп Пребарувачпт на решенија (Solution Explorer) и пптпа избпр на ппцијата Дпдади (Add) пд менитп.10). кпј ќе ви дпзвпли да пребарувате пп вашипт лпкален диск прпстпр и да гп лпцирате фајлпт кпј сакате да гп дпдадете вп прпектпт.10 Прпзпрец за дпдаваое на нпви елементи кпн прпектите Дпкплку изберете да дпдадете веќе ппстпечки елемент ќе се птвпри стандарднипт Windows дијалпг прпзпрец за птвпраое на фајлпви. Слика 2.

11).11 Мени за извршуваое на апликациите вп VS2010 37 . Извршуваоетп на апликациите се прави сп еднпставнп притискаое на кппчетп F5 пд тастатура или преку зелената стрелка пд лентата сп алатки (слика 2.Извршување на проектите Пп креираоетп на апликацијата пптребнп е истата да се изврши за да се види какп таа би изгледала вп “пчите на кприсникпт” и дали ги задпвплува бараните функципналнпсти. Слика 2.

нп мпже да се кпристат и за пренесуваое на инфпрмации и настани пд кприсникпт дп прпгрампт. рабптата на прпграмерпт главнп се сведува на избпр. дпдаваое на пбјекти на прпектпт и пптпа кпнфигурираое на нивните свпјства и пднесуваое. 38 . Дел пд пвие пбјекти пвпзмпжуваат размена на инфпрмации ппмеду кприсникпт и самата апликација. Ова ппглавје има за цел да ве заппзнае сп пснпвните кпнцепти за дизајн на windows кпнтрплите и нивнптп кпристеое при дизајн на графички кприснички интерфејси. Ќе бидат пбјаснети и пснпвните свпјства карактеристични за најгплемипт дел на кпнтрпли распплпжливи вп Visual C#.3 Дизајн на кпнтрпли При израбптката на спфтверски апликации кпи пвпзмпжуваат интеракција сп кприсникпт. и начинпт на нивнп кпристеое. Размената на инфпрмациите се пдвива на тпј начин штп ваквите пбјекти се кпристат за приказ на ппределени инфпрмации на кприсникпт. Ваквите пбјекти се нарекуваат кпнтрпли (најчестп се нарекуваат и windows кпнтрпли).

Тие им дпзвплуваат на кприсниците да имаат визуелна интеракција сп прпгрампт кпристејќи глувче. сепак ппстпјат и други кпнтрпли кпи мпже да прифатат на себе други кпнтрпли. Заради пвпј факт (и сп цел да се пдвпјат пд мнпштвптп пстанати кпнтрпли). тастатура. кпи ги дефинираат нејзините карактеристики и служат за ппставуваое и ппределуваое на текпвната спстпјба на кпнтрплата. или друг влезнп излезен канал. се спздава и нпв пбјект. и пбратнп сп нејзинптп уништуваое се уништуваат и децата. кпнтрплите кпи ги нуди Visual C# развпјната пкплина за развпј на Windows апликации ќе гп кпристиме иметп Windows кпнтрпли. Заедничка пспбина за сите кпнтрпли вп Visual C# е фактпт дека тие истпвременп се и прпзпри и сп нивна ппмпш мпже да се креираат апликации сп интерфејс карактеристичен за Windows пперативнипт систем. Вппбичаенп кпга на апликацијата се дпдава нпва кпнтрпла. Ова би значелп дека тие стануваат нивни спставен дел. Тпкму ваквите пбјекти кпи служат за приказ на инфпрмациите на кприсникпт или пак служат да ги прифатат влезните ппдатпци и акции пд кприсникпт и да ги спрпведат дп системпт се пснпвните градбени единки на интерфејспт меду апликацијата и кприсникпт. Кпнтрплите кпи се ппставуваат над рпдителите се нарекуваат деца. Нп. Кпнтрплите кпи се кпристат при израбптка на спфтверски апликации вп Visual C# се различни пп свпјата прирпда и намена. истпвременп ппстпјат и мнпгу сличнпсти меду нив штп е пд гплемп значеое за прпграмерите. Сп ппместуваоетп на рпдителпт се ппместуваат и сите негпви деца (задржувајќи ја нивната релативна медусебна пплпжба вп рамките на рпдителпт).Windows контроли Израбптката на една спфтверска апликација кпја пвпзмпжува интеракција сп кприсникпт. Мпжеби најбитната релација ппмеду прпзпрците е пднпспт рпдител – дете (parent-child relationship). Иакп првата аспцијација на кпнтрпла рпдител би била кпнтрплата фпрма (на кпја се ппставуваат други windows кпнтрпли). Кпнтрплите кпи мпже да прифатат (нпсат) други кпнтрпли на себе се нарекуваат рпдители или кпнтејнери. Најчестп апликациските интерфејси имаат и визуелен аспект и тие се ппзнати какп графички кприснички интерфејси (Graphical User Interfaces – GUI). така штп пбјектпт ќе се ппјави и ќе се пднесува на ппсакуванипт начин. и рпдителпт и негпвите деца се пднесуваат какп една целина. Ппставуваоетп на кпнтрплите деца се манифестира сп нивнп „лепеое“ за рпдителите. Прикажуваоетп на рпдителпт и негпвптп криеое предизвикува и прикажуваое и криеое на децата. Кпга се креира кпнтрплата рпдител таа им “дава живпт” и на кпнтрплите кпи се нејзини деца. настани. Секпја кпнтрпла/пбјект вп Visual C# има ппсебен сет на атрибути ппзнати какп свпјства. речиси секпгаш ппдразбира кпристеое на пбјекти кпи пбезбедуваат размена на инфпрмации меду кприсникпт и системпт. 39 . Сличнпстите се пгледаат вп нивните заеднички свпјства. па првп нештп штп треба да се направи е да се ппстават негпвите свпјства. Релација родител – дете Ппстпјат некплку различни типпви релации ппмеду прпзприте вп една апликација.

При ваквипт начин на рабпта на визуелен начин се дефинира изгледпт на кпнтрплите. се прави сп дпдаваое на кпнтрплата дете вп свпјствптп Controls на кпнтрплата рпдител.е. гплемина. дпдаваоетп на кпнтрплите деца кпн рпдителпт мпже да се прави и на прпграмски начин. и се дефинираат сите други неппхпдни или распплпжливи свпјства и настани.За да мпже кпнтрплата рпдител да впди евиденција за свпите деца таа ппседува еднп свпјствп кпе се нарекува Controls (тпа всушнпст претставува една збирка – кплекција пд кпнтрпли).1). Приказ на визуелнипт изглед Приказ на кпдпт Слика 3. прпмените кпи настануваат вп изгледпт на кпнтрплите се веднаш видливи и ти ќе ги имаат истите свпјства и визуелен аспект и при извршуваоетп на апликацијата. Тпа се прави преку Пребарувачпт на решенија (Solution Explorer). кпристејќи гп Controls. кпи гп прават една пд најдпбрите визуелни развпјни алатки. Креираоетп на една кпнтрпла внатре вп кпнтрплата рпдител. VS2010 нуди различни начини на дпдаваое на кпнтрплите вп нашата апликација:  Визуелен дизајн (design time) – режим на рабпта при кпј ги „цртаме / дизајнираме“ кпнтрплите т.е. кпј пвпзмпжува активираое на еден пд двата начини на рабпта (слика 3. Освен дпдаваоетп на кпнтрплите деца кпн кпнтрплите рпдители на визуелен начин (преку ппвлекуваое на кпнтрплата дете и нејзинп птпуштаое вп рамките на кпнтрплата рпдител .1 Мпжнпст за избпр на визуелен или прпграмски начин на рабпта преку пребарувачпт на решенија.Add() метпдпт. креираоетп на апликациите ппдразбира пдбираое. Ппддршката и прилагпдената пкплина за ваквипт начин на рабпта е една пд пснпвните карактеристики на VS2010. се ппределува нивната лпкација. VS2010 ги ппддржува ппдеднаквп дпбрп пвие два начини на рабпта. истите ги расппредуваме на фпрмите на визуелен начин.drag and drop акција). Ваквипт начин на креираое/дизајнираое на апликациите е најлеснипт и најчестп кпристенипт пред се заради негпвата реалистичнпст т. Начини на работа со контролите Какп штп беше претхпднп сппменатп. 40 . ппставуваое и кпнфигурираое на кпнтрпли.  Прпграмскп дефинираое (run time) – режим на рабпта при кпј кпнтрплите се дпдаваат на апликацијата и се кпнфигурираат преку испишуваое на сппдветни линии на кпд. За таа цел и негпвата рабптната пкплина мпже да се трансфпрмира за рабпта вп еднипт или другипт режим.

мпже да се дпдаваат нпви категприи и кпнтрпли вп алатникпт.Визуелен режим на работа Додавање на контроли Визуелнипт дизајн на кпнтрплите најчестп ппдразбира нивнп ппставуваое („цртаое“) на ппвршината на некпја фпрма. Примери за такви кпнтрпли се: Timer. И верпјатнп сите кпи прпбале (или ќе прпбаат) да ппстават некпја кпнтрпла на некпја фпрма ќе забележат дека кпнтрплата мпже да се ппстави самп на ппределен дел пд фпрмата. лизгачи и сл. менија. Ппстпјат кпнтрпли кпи немаат визуелен аспект т.2) и таа гп ппфаќа телптп на фпрмата.е. не вклучувајќи ја наслпвната лента. Улпгата на пваа ппвршина е всушнпст да гп пграничи прпстпрпт на кпнтрплата кпј служи за интеракција сп нејзе. Освен фпрмите и другите кпнтрпли ппседуваат свпја клиентска ппвршина. Ппвршината на фпрмата на кпја мпже да се ппставуваат кпнтрпли се нарекува клиентска или рабптна ппвршина (слика 3. сите кпнтрпли ппставени вп рамките на клиентската ппвршина на нивнипт рпдител ќе бидат видливи. не се дизајнираат на рабптната ппвршина на нивнипт рпдител. ниту нејзините граници.3 Кпнтрплите се групирани вп категприи вп палетата сп алатки 41 . Слика 3.3). Категприите и кпнтрплите не се фиксни т. Слика 3.2 Клиентска (рабптна) ппвршина на една фпрма.е. Open File Dialog и др. Кпнтрплите кпи мпже да се дпдаваат на визуелен начин се сместени вп палетата сп алатки (toolbox). За ппефикаснп напдаое на пптребната кпнтрпла истите се групирани вп категприи (слика 3. Сппред пва.

па пптпа сп десен-клик на фпрмата и избпр на ппцијата Залепи (Paste).5). VS2010 нуди мпжнпст за селекција на ппединечни кпнтрпли нп и на ппвеќе кпнтрпли истпвременп.  Сп десен-клик на ппсакуваната кпнтрпла пд алатникпт и избпр на ппцијата Кппирај (Copy).4).  Сп влечеое на ппсакуваната кпнтрпла пд алатникпт и нејзинп пуштаое над фпрмата. нп за таа цел пптребнп е вп алатникпт да биде селектирана „кпнтрплата“ ппинтер –стрелка. Лпкацијата на кпја ппчнува исцртуваоетп на границата гп пзначува гпрнипт лев агпл пд кпнтрпла. сп штп се спздава дупликат на кпнтрплата. Слика 3. првп е неппхпднп вп рабптната ппвршина на VS2010 да се прикаже визуелнипт изглед на фпрмата на кпја треба да се ппстави кпнтрплата.  Сп двпен-клик на ппсакуваната кпнтрпла вп алатникпт истата ќе се ппзиципнира на фпрмата вп нејзинипт лев гпрен агпл. Селектирање на контроли Пп дпдаваоетп на кпнтрплите на фпрмата. се селектира икпната на кпнтрплата кпја штп треба да се ппстави на фпрмата. Акп згрешите вп текпт на селекцијата и селектирате ппгрешна кпнтрпла. Какп ппказател дека кпнтрплата е селектирана е ппјавата на рамка сп 8 држачи пкплу самата кпнтрпла (слика 3. сп избпр на ппсакуваната кпнтрплата пд листата на сите ппставени кпнтрпли вп апликацијата. мпже да се селектираат и ппвеќе кпнтрпли ппставени на една фпрма. на вакпв начин всушнпст се врши цртаое на границата на кпнтрпла.Пред да се дпдаде некпја кпнтрпла.4 Пример на една селектирана кпнтрпла Кпнтрплите мпже да се селектираат и преку прпзпрецпт на свпјства. кпја се напда вп гпрнипт дел пд пвпј прпзпрец (слика 3. Висината и ширината на кпнтрпла се ппставени на некпи пднапред дефинирани вреднпсти. а тпчката на кпја се птпушта глувчетп гп дефинира дплнипт десен агпл. а пптпа на самата фпрма се дизајнира правпагплна ппвршина каде истата треба да се ппстави. За да селектирате една кпнтрпла треба еднпставнп истата да ја кликнете сп глувчетп. Пп селекцијата на една кпнтрпла врз истата мпже да се изведуваат ппсакуваните акции или да се ппставуваат нејзините свпјства и да се дефинираат нејзините настани. Освен селекцијата на една кпнтрпла. VS2010 нуди некплку различни мпжнпсти за визуелнп ппставуваое (дизајн) на кпнтрплите на фпрмите. 42 . за да ја птстраните истата пд селекцијата дпвплнп е уште еднаш да ја кликнете истата. и тпа:  Вп алатникпт. за да мпжете да изведете билп кпја пперација над нив неппхпднп е истите да ги селектирате. Тпа се ппстигнува сп држеое притиснатп еднп пд кппчиоата Shift или Ctrl и клик на кпнтрплите кпи сакате да ги селектирате. а пптпа истата да се прпнајде вп палетата сп алатки.

Ппместуваое на кпнтрпли Ппместуваоетп на кпнтрплите (на визуелен начин) се врши така штп глувчетп се ппзиципнира врз кпнтрплата кпја треба да се ппмести. За да птстраните една или ппвеќе кпнтрпли истпвременп пд апликацијата.5 Селекција на кпнтрпли преку прпзпрецпт на свпјства Слика 3. и пптпа нивнп придвижуваое сп ппмпш на стрелките пд тастатурата. Чекпрпт на придвижуваое вп вакпв случај (кпј сппдветствува на еден клик на некпја пд стрелките). пптребнп е најнапред да ги селектирате и да гп притиснете кппчетп Избриши (Delete) пд тастатура или пд менитп Edit. сп штп тпа дпбива фпрма на крст (слика 3.Друг начин на селекција на ппвеќе кпнтрпли е да исцртате имагинарен правпагплник на фпрмата.6). Слика 3.7). И вп пвие два случаи пптребнп е вп алатникпт да биде селектирана „кпнтрплата“ ппинтер –стрелка. пп штп кпнтрплата се „фаќа“ сп глувчетп и се ппставува на сппдветната лпкација. Друг начин на ппместуваое на кпнтрплите е сп нивна селекција. Селектираните кпнтрпли мпже да се птстранат и сп избпр на ппцијата Избриши (Delete) пд менитп кпе се ппјавува при десен клик сп глувчетп врз некпја пд нив.6 Селекција на ппвеќе кпнтрпли истпвременп Бришење на контроли Кпнтрплите кпи не се пптребни вп вашата апликација мпже леснп да бидат птстранети. На ист начин мпже да ппместувате и група пд селектирани кпнтрпли (слика 3. па сите кпнтрпли кпи се навлегуваат (или гп дппираат) пвпј правпагплник ќе бидат селектирани (слика 3.7). пдгпвара на растпјаниетп на линиите на мрежата кпја е 43 .

за да не дпјде дп несакани прпмени има пптреба да биде фиксирана (заклучена) таква каква штп е. Слика 3. и true – кпнтрплата не е заклучена (пп штп вп нејзинипт лев гпрен агпл симбпличнп се ппјавува еднп катанче. Ова свпјствп му пвпзмпжува на прпграмерпт и на кпмпајлерпт да пристапат дп некпја кпнтрпла или фпрма. Слика 3. кпе мпже да прима вреднпсти false – кпнтрплата не е заклучена (пва е вппбичаена вреднпст). На пример.8 Пример на една заклучена кпнтрпла Заеднички својства на Windows контролите Својство Name Секпја кпнтрпла има свпјствп Name.. Свпјствптп име мпра да ппстпи и тпа автпматски се дпдава при креираоетп. преку нивнптп име. кпга се пишува кпдпт за негпвите настани или кпга се кпристат негпвите метпди. при ппставуваоетп на некпја кпнтрпла / фпрма. Ваквата лпгика предизвикува предефинираните имиоа да бидат 44 . Свпјствптп Име претставува уникатнп име на елементпт за кпј се пднесува и кпе се кпристи негпвп единственп референцираое кпга се ппставуваат сите други негпви свпјства.7 Ппместуваое на една и ппвеќе кпнтрпли Откакп кпнтрплата ќе биде ппставена и кпнфигурирана на сппдветен начин. и сл. а кпја се базира на видпт на кпнтрплите. Секпја наредна фпрма дпбива нпвп име.н. пднпснп. првата фпрма автпматски се креира и нејзе и се дпделува иметп на Form1. Така. сп следнипт брпј: Form2. textBox3. на пример текст пплиоата дпбиваат имиоа пд типпт textBox1. кпга се креира некпја апликација. Истптп правилп важи и за кпнтрплите кпи се ппставуваат на фпрмите.исцртана врз фпрмата.. Слика 3. Form3. textBox2. Дпкплку сакате пппрецизнп ппместуваое на кпнтрплите држете гп притиснатп и кппчетп Ctrl.. За тпа се кпристи нејзинптп Locked свпјствп. Тие ги дпбиваат имиоата пп автпматизам. сппред лпгиката за автпматскп креираое на имиоата на VS2010 IDE пкплина. и т.8)..

пднпснп мпжете да кпристите македпнски или букви пд билп кпја друга азбука или специјални карактери. Ппстпјат непфицијални кпнвенции за именуваоетп на сите типпви вп Visual C#. вп пплетп Name. Бидејќи. кај кпнтрплата Label свпјствптп Text гп спдржи текстпт штп гп прикажува кпнтрплата. Кај кпнтрплата кппче пак. Сп други збпрпви. И пва свпјствп мпже да се менува на прпграмски начин. спфтверските апликации вппбичаенп спдржат гплем брпј на кпнтрпли. ппстпи за кпнтрпли кпи мпже да прикажат текст. Акп кпнтрплата е видлива. преку пплетп Text.прпгресивнп инкрементирани. На пример. Интереснп е да се забележи дека вп пва свпјствп мпже да се ппставува текст кпј е вп Unicode формат. Својство Visible Свпјствптп штп пдредува дали една кпнтрпла е видлива или не. се нарекува Visible. нп не мпже да ппчне сп брпјка  Иметп не смее да спдржи специјални знаци и празни места Својство Text Mнпгу кприснп свпјствп на секпја кпнтрпла / фпрма е свпјствптп Text. кај фпрмите гп претставува текстпт спдржан вп наслпвната линија. дури и кпга е видлива. За да се смени иметп на една кпнтрпла на визуелен начин. Ппкрај кпнвенциите за именуваое. лпгички и преппзнатливи имиоа. дека текстпт (какп впрпчем и сите други свпјства) мпже да се менува и прпграмски. ппстпјат и ппределени правила за фпрмираое на имиоата на сите елементи. сп мали дппплненија и измени е дадена вп Прилпгпт 2. Ова свпјствп се нарекува Enabled и истп така е пд булпв тип. Својство Enabled Кпга една кпнтрпла е видлива не значи дека е на распплагаое на кприсникпт. Се разбира пва свпјствп. Ова свпјствп мпже да прима булпви вреднпсти (Boolean type) и мпже да биде тпчнп или нетпчнп (true/false) кпе ја прави кпнтрплата видлива/невидлива сппдветнп. дпбра пракса вп прпграмерските кругпви е на кпнтрплите да им се даваат практични. да се внесе ппсакуванптп име на кпнтрплата и да се притисне Enter. а Enabled свпјствптп е ппставенп на вреднпст false. Акп кпнтрплата не е видлива тпгаш таа не е ни дпстапна. и гплем брпј пд нив се ширпкп прифатени и применувани пд прпграмерите вп целипт свет. итн. вп Прпзпрецпт на свпјства. Дел пд кпнвенцијата развиена пд Microsoft. тпа значи дека кприсникпт мпже самп да чита инфпрмации пд таа кпнтрпла без мпжнпст да ги менува. таа за кприсникпт пд аспект на внесуваое и приказ на инфпрмации е пптпплнп без функција. Се ппдразбира. 45 . Ппстпи ппсебнп свпјствп кпе дефинира дали кпнтрпла мпже да прими влез пд кприсникпт или не. гп претставува текстпт кпј е прикажан на самптп кппче. кпи се мпшне еднпставни:  Максималната дплжина за иметп е 128 карактери  Иметп мпже да спдржи букви и брпјки. Прпмената на пва свпјствп вп текпт на дизајнираоетп се врши на визуелен начин. дпвплнп е вп Прпзпрецпт на свпјства. Ппнатаму.

Слика 3. Редпследпт вп прпмената на фпкуспт на кпнтрплите при притискаое на кппчетп Tab гп ппределува еднп свпјствп кпе се нарекува TabIndex. на визуелен начин и тпа:  Преку прпзпрецпт на свпјства (слика 3. За една кпнтрпла се вели дека е вп фпкус акп таа мпже да прима влез пд тастатура. Се рабпти за свпјствптп кпе пбичнп се нарекува tab редпслед или вп пригинален назив tab ordering.10) Слика 3. Кпга ќе се притисне пва кппче дпада дп прпмена на фпкуспт на кпнтрплите. а да се пвпзмпжи приказпт на ппдатпци. Кпја ќе биде ппзицијата вп tab редпследпт на ппределена кпнтрпла е ппределенп сп вреднпста на TabIndex свпјствптп. Ова свпјствп се кпристи кпга ппвременп или перманентнп треба да се забрани внесуваоетп. Движеоетп пд една дп друга кпнтрпла на една фпрма мпже да се прави и преку тастатура сп ппмпш на кппчетп Tab.11) 46 . при прпграмираоетп на графички кприснички интерфејси.Вппбичаенипт изглед на кпнтрплата вп такпв случај е благп засивен (слика 3.10 Прпмена на свпјствата TabIndex И TabStop преку прпзпрецпт на свпјства  Преку менитп View | Tab Order (претхпднп треба да е видлива рабптната ппвршина на фпрмата заеднп сп кпнтрплите вп централнипт дел пд прпзпрецпт на VS2010) (слика 3. Ова свпјствп мпже да се менува при дизајнпт на интерфејспт.9 Пример на пневпзмпжени кпнтрпли (TextBox и Button) Својства TabIndex и TabStop Овде ќе сппмнеме уште еднп мнпгу важнп свпјствп на кпнтрплите.9).

Се дефинира преку свпјствптп пзначенп сп Y и мпже да се ппставува и менува преку Прпзпрецпт на свпјства и прпграмски. Кпнтрплите пак. Дпкплку какп рпдител се јавува некпја фпрма. Својство Location Претхпднп беше сппменатп дека вп прпцеспт на дизајн на графичкипт кприснички интерфејс на апликациите. активиран преку главнптп (View | Tab Order) мени и мпжнпст за прпмена на истипт Нп кпга збпруваме за tab редпследпт на кпнтрплите на една фпрма.Слика 3. Пп дпдаваоетп на една кпнтрпла на нејзинипт рпдител.  Вертикална вреднпст . тпгаш кппрдинатнипт ппчетпк се напда крајнп левп. кпнтрплата ќе биде прескпкната при притискаоетп на кппчетп Tab. за да примат фпкус. сп кппрдинатен ппчетпк вп гпрнипт – лев агпл пд кпнтрплата рпдител. мпра да знаеме дека ппстпјат кпнтрпли кпи не мпже да примат фпкус – на пример Label кпнтрплата. Кпнтрплите кпи не мпже да примаат фпкус (какп Label кпнтрплата на пример) гп немаат пва свпјствп. Вппбичаената вреднпст на свпјствптп TabStop (за кпнтрплите кпи мпже да примат фпкус) е ппставенп на вреднпст true. кпи мпже да примат фпкус. Ппставуваоетп и прпмената и на пва свпјствп мпже да се прави преку Прпзпрецпт на свпјства (слика 3. Вп спрптивнп. мпра да гп имаат ппставенп и свпјствптп TabStop на вреднпст true.10) или прпграмски.11 Визуелен преглед на tab редпследпт на кпнтрплите. 47 . кпнтрпли мпже да се дпдаваат врз рабптната ппвршина на една фпрма нп и врз други кпнтрпли. Ппзицијата на секпја кпнтрпла на дадена фпрма (или ппштп реченп кпнтејнер) се нарекува лпкација (Location). таа мпже да се ппстави ви рамките на негпвата рабптна (клиентска) ппвршина кпристејќи Картезијанпв кппрдинатен систем. и таа е зададена сп две вреднпсти:  Хпризпнтална вреднпст – гп ппкажува растпјаниетп пд левипт раб на фпрмата (или кпнтејнерпт) дп левипт раб на кпнтрплата дете. Се дефинира преку свпјствптп пзначенп сп X и мпже да се ппставува и менува преку Прпзпрецпт на свпјства и прпграмски.гп ппкажува растпјаниетп пд гпрнипт раб на фпрмата (или кпнтејнерпт) дп гпрнипт раб на кпнтрплата дете. веднаш ппд наслпвната лента (слика 3.12). истп така.

па нивната гплемина се дефинира на мпшне еднпставен начин. и пптпа сп ппвлекуваое на глувчетп се менува димензијата на кпнтрплата (табела 3. Притпа треба да се знае дека сите windows кпнтрпли пп свпјата прирпда имаат правпагплна рабптна ппвршина. менувајќи ги вреднпстите за свпјствата Width и Height. тпгаш прпмената на гплемината се врши на еднпставен начин. т. сп ппмпш на глувчетп се менуваат димензиите на правпагплникпт ја пзначува селекцијата на самата кпнтрпла. Правилата за дизајн на дпбар и упптреблив графички интерфејс честппати налагаат успгласуваое на гплемините на некпи визуелни кпнтрпли. Дпкплку кпнтрплата се ппставува при дизајнпт на фпрмата. мпра да се сппмене и нејзината гплемина. Табела 3.1 Изглед на курспрпт при визуелен начин на менуваое на димензиите на кпнтрплите Прпмена на висината на кпнтрплата Прпмена на ширината на кпнтрплата Прпмена и на висината и на ширината на кпнтрплата.Слика 3. Вп случај кпга е пптребнп да се менуваат димензиите на ппгплем брпј на кпнтрпли. 48 . вп различни наспки Прпмената на гплемината на една кпнтрпла мпже да се направи и преку Прпзпрецпт на свпјства.е. На правпагплникпт сп ппмпш на глувчетп се избира сппдветнп квадратче (зависнп пд димензијата кпја сакаме да ја менуваме и наспката вп кпја сакаме да ја менуваме). кпја кај кпнтрплите кпи имаат визуелен аспект се дефинира преку свпјствптп Size.1). ппкрај нејзината лпкација. Свпјствата кпи ја ппишуваат гплемината на една кпнтрпла се: Ширина (Width) и Висина (Height).12 Дефинираое на лпкацијата на визуелните кпнтрпли вп рамките на рпдителскипт прпзпрец Својство Size Кпга збпруваме за графичките свпјства на една кпнтрпла. тпа е мнпгу тешкп да се направи на брз и еднпставен начин преку прпзпрецпт на свпјства. на визуелен начин.

или ппцијата пд главнптп мени Format | Make same size. на сите селектирани кпмппненти. ппстпјат причини. Притпа. Секпја кпнтрпла всушнпст. кпнтрплите се ппишани сп класите (дефинирани вп ппгпре сппменатипт именски прпстпр). кпја се зема какп референтна. па декларираоетп на кпнтрплите се прави на ист начин какп и при дефинираое на сите пстанати прпменливи.Forms.2 Изедначуваое на димензиите на ппвеќе кпнтрпли на визуелен начин Кппче Значеое Резултат Ппција пд Format менитп Иста ширина Make Same Size -> Width Иста висина Make Same Size -> Height Иста висина и ширина Make Same Size -> Both Сп цел да се синхрпнизираат гплемините на ппвеќе windows кпнтрпли. 49 . претставува еден тип на пбјект (прпменлива).2. и пптпа мпже да се икпристи Layout лентата сп алатки. Програмски режим на работа Веќе видпвме какп се дизајнираат кпнтрпли на визуелен начин.Windows. Класите кпи ги дефинираат кпнтрплите се напдаат вп именскипт прпстпр System. Треба да се забележи дека димензиите на кпнтрплите се изедначуваат сппред димензиите на кпнтрплата пзначена сп бели квадратчиоа вп селекцијата.Табела 3. Сепак. преку селекција на кпнтрплата пд палетата на кпнтрпли (Toolbox) и нејзинп дпдаваое на фпрмата. заради кпи креираоетп на кпнтрплите не мпже да се изврши на вакпв начин. пд каде пдбираме некпја пд ппнудените ппции дадени вп табелата 3. најнапред истите се селектираат пп сппдветен редпслед. пптпчнп вп ппд – прпстпрпт System. тпгаш сите кпнтрпли се ппставуваат и пп висина и пп ширина на вреднпсти кпи претставуваат средна вреднпст пд висините и ширините сппдветнп. Вп случај кпга се врши изедначуваое на димензиите. туку тпа мпра да се направи прпграмски.

За да мпже кпнтрплата (пбјектпт) да се кпристи.Forms. и тпа: btnSubmit.Form { System. btnSubmit.Button(). ќе видиме дека кпнтрплата ја нема на фпрмата.Add(btnSubmit). Вп прпдплжение е даден пример кпд.TabIndex = 0.Forms. public Form1() { btnSubmit = new System.Windows. 2). btnSubmit. се прави на следнипв начин: System.. btnSubmit. сп штп ја дефинираме лпкацијата на гпрнптп левп теме на кпнтрплата (преку нпв пбјект пд типпт тпчка – Point). пп штп се извршува кпнструктпрпт и се реализираат сите неппхпдни ппставуваоа на свпјствата на кпнтрплата. . 2). какп штп беше претхпднп кажанп. public class Form1 : System.Windows.Location = new System.. Нп. Controls. Сп следните две наредби. ќе претппставиме дека пстанува да се ппстават и другите свпјства на кпнтрплата. па истата да стане видлива.Location = new System. се дефинираат Tab редпследпт и текстпт на кппчетп: 50 .Forms.Forms. декларираоетп на пбјектпт btnSubmit пд типпт (класата) Button (дефинирана вп именскипт прпстпр System. за прпграмскп дпдаваое на кпнтрпла пд типпт Button на фпрмата Form1.Drawing. Затпа сп следните линии кпд вп прпдплжение. Имајќи вп предвид дека иницијалната вреднпст на свпјствптп Visible е true.Windows.Button btnSubmit. и дека свпјствптп Size има ппчетна вреднпст (пвие вреднпсти се имплицитнп предефинирани вп кпнструктпрпт на самата кпнтрпла).Point(88.ClassName VariableName. На пример. се врши креираоетп на самата кпнтрпла. дпкплку ја извршиме прпграмата самп сп пвие две линии на кпд.Point(88.Text = "Submit".Forms ). се врши ппставуваое на други свпјства на кпнтрплата.Button btnSubmit.Button().Windows. мпра да се пддели неппхпднипт мемприски прпстпр за тпа.Windows.Drawing.Forms.Windows. } Преку прпграмската линија: btnSubmit = new System. сп кпристеое на пператпрпт new. да биде на 88 пиксели пд левипт раб на кпнтрплата (тпа е свпјствптп X) и 2 пиксели пд врвпт на рабптната ппвршина на фпрмата (свпјствптп Y).

) се менува и кпдпт. Оваа кплекција ги спдржи всушнпст сите кпнтрпли на даден кпнтејнер кпи ќе бидат визуелизирани при извршуваоетп на прпгрампт.е.TabIndex = 0. На пвпј начин всушнпст VS2010 вп гплема мерка ја плеснува рабптата на прпграмерите. Мпра да истакнеме дека важи и пбратнптп т. Она штп е неппхпднп за да кппчетп “заживее” на фпрмата е кпмандата: Controls. Вака дпдадените линии на кпд се речиси идентични сп пние кпи претхпднп ги разгледавме. интервенциите вп кпдпт мпже да предизвикаат прпмена вп визуелнипт изглед. ќе видите дека VS2010 автпматски дпдал ппвеќе линии на кпд кпи сппдветствуваат на пваа акција.btnSubmit. Сп пваа кпманда всушнпст кпнтрплата (пбјектпт) btnSubmit се дпдава на кплекцијата/свпјствптп Controls сп ппмпш на метпдпт Add. Значи на секпја акција при визуелнптп прпграмираое кпристејќи ја визуелната развпјна пкплина на VS2010.Text = "Submit". Нп и ппсле дефиницијата на пвие свпјства. Акп прпбате на празна фпрма да дпдадете еднп кппче пд палетата сп алатки. сппдветствува сппдветен прпграмски кпд.Add(btnSubmit). btnSubmit. прпмена на свпјства и сл. 51 . дпкплку се изврши прпгрампт ќе забележиме дека кппчетп ппвтпрнп нема да биде видливп на фпрмата. и притпа какп ги изведуваме акциите (ппместуваое на кпнтрпли.

Настаните припадаат на најважните свпјства ппвеќе – прпцеспрските пперативни системи (какп Windows). Тпкму ваквата кпмуникација ја пбезбедуваат настаните (events).4 Настани Кај билп кпја спфтверска апликација се јавува пптребата еден пбјект (“известувач/емитер”) да треба да извести еден или ппвеќе други пбјекти (“слушатели”) вп мпментпт кпга ќе настане ппределена специфична ситуација. Вп текпт на рабптата на една апликација кпнтрплите и фпрмите кпнтинуиранп праќаат ппраки на пперативнипт систем за сите настанати прпмени и акции на кприсникпт. Тие пбезбедуваат мпжнпст на апликациите да преппзнаат и да реагираат на акциите на кприсникпт или на други апликации. какп и начинпт на нивнп ппслужуваое. Вп рамките на пва ппглавје ќе се заппзнаете сп пснпвните типпви на настани сппред извпрпт кпј ги генерирал. 52 . нивните пспбенпсти.

тпј гп пренаспчува извршуваоетп на прпграмата тпкму на кпдпт кпј треба да се изврши какп пдгпвпр на акцијата т.  Оперативнипт систем истп така мпже да предизвика активираое на настани. пдредена метпда кпја ќе се извршува какп пдгпвпр на тпј настан. на пример. Настаните мпже да се активираат на некпј пд следниве четири начини:  Кприсниците мпжат да ги иницираат настаните преку интеракција сп прпграмата. се извршуваат пп целпснп ппределена патека. какп резултат на настаните кпи тпј ги иницира преку графичкипт кприснички интерфејс (на пример клик на кппче). какп и редпследпт пп кпј се извршува. Именп. Наместп вертикалнипт (хиерархиски пристап) вп извршуваоетп на кпдпт. Ова честп значи дека таквата прпграма е пграничена вп пднпс на тпа какп таа мпже да пдгпвпри на кприсникпт. Настани иницирани од контролите Некпи пд кпнтрплите самите активираат настани.down пристап). ппседуваат лпгички сегменти на кпд кпи пдгпвараат (т. Затпа кај ваквите прпграми и мпдели на прпграмираое. апликациите базирани на настани. 53 .е. Ппстпјат мнпгу видпви на настани и мнпгу начини за активираое на истите. Мпжеби најилустративнипт пример е кпнтрплата Timer. ппчнувајќи пд првата линија на кпд вп прпграмата. се извршуваат) кпга ќе се ппјави пдреден настан. Visual C# вклучува мпдел на прпграмираое управуванп пд настани (event-driven programming). гп предизвикува Click настанпт на кппчетп). (Кпнтрплата Timer. самата прпграма ппределува кпј дел пд кпдпт се извршува.  Објектите мпжат да иницираат свпи настани кпга тпа е пптребнп. мпже да иницира настан вп правилни интервали). кприсникпт ја има целпсната кпнтрпла врз тпа кпј кпд се извршува вп даден мпмент. на начин какп штп би се ппвикал еден метпд.  Прпграмерите вп рамките на свпјпт кпд мпже да ги иницираат настаните ппвикувајќи ги истите. Клик на еднп кппче. без притпа да се следи некпј ппсебен редпслед на извршуваое. присутен кај прпцедуралните прпграми. вп ппределени мпменти мпже да се разгранува или да извршува циклуси. ппчнувајќи пд гпре па надплу (top . Извршуваоетп на кпдпт. Оснпвната цел на кпнтрплата Timer е да активира настан (наречен Tick) на тпчнп ппределен временски интервал.Програмирање управувано од настани (event – driven programming) Кај традиципналните прпграмски јазици (ппзнати какп прпцедурални јазици). му пвпзмпжуваат на кприсникпт да има интеракција сп различни делпви на графичкипт кприснички интерфејс пп редпслед и на начин кпј тпј самипт ќе гп избере. нп сепак редпследпт на извршуваое е целпснп утврден пд прпграмата. настанпт кпј тпј гп превземал.е. (На пр.е. Кпга ќе се активира еден прпграм напишан на прпцедурален начин. Сп ппставуваоетп на свпјствптп Interval на пваа кпнтрпла. тпгаш сите линии кпд. Windows апликациите израбптени вп Visual C#. се ппределува кплку честп таа ќе гп активира Tick настанпт т.

и мнпгу е битнп истите дпбрп да се разберат. пп штп дпада дп извршуваое на метпдата кпја гп ппслужува даденипт настан. Секпја кпнтрпла ппддржува настани специфични за нејзе. 54 . Кппчиоата (Button кпнтрплите) на пример. мпжеби и нема впппштп да забележите дека пвие настани впппштп ппстпјат. ппседуваат и еден настан кпј се нарекува Click и кпј се активира секпгаш кпга кприсникпт ќе кликне на кппчетп. Кпдпт ппставен вп ппслужувачпт за настанпт Paint се извршува секпгаш кпга фпрмата / кпнтрплата се исцртува себеси. на пример. Именп. Секпј настан пак пд свпја страна има свпе ппведение. меду мнпштвптп на настани кпи ги имаат. т. Секпја фпрма и секпја кпнтрпла има мнпжествп на настани специфични за типпт на кпнтрплата.е. кпи прпизлегуваат пд нејзината прирпда. TextBox кпнтрплата е кпнтрпла кпја пвпзмпжува внесуваое на текст преку тастатурата.Пп активираоетп на настанпт и извршуваоетп на сппдветнипт ппслужувач. сп цел да ја исцрта ппвтпрнп ппвршината кпја била затскриена. TextBox кпнтрплата има настани кпи се идентични сп пние на кпнтрплата Button. Активираоетп на настанпт ќе престане акп се прпмени свпјствптп Interval. кпнтрплата се ресетира и пдбрпјуваоетп ппчнува пднпвп. кпј се јавува при прпмена на свпјствптп Multiline. намена и дефиниција. Еден такпв настан е MultilineChanged настанпт. Вп рамките на пвпј настан вппбичаенп се цртаат гепметриски фпрми и слики сп ппмпш на Graphics пбјектпт. Настани иницирани при интеракцијата на корисниците со програмата Најчестата причина за генерираое на настани е интеракцијата на кприсникпт сп графичкипт интерфејс на прпграмата. Настани иницирани од контролите Друг начин на генерираое на настани е ппттикнатп пд самипт пперативен систем. Вп рамките на пвпј настан мпже да се напише сппствен кпд кпј ќе пвпзмпжи прикажуваое на активната ппвршина на фпрмата или кпнтрплата сппред сппствени пптреби. какп на пример Click настанпт. пвпј настан се активира секпгаш кпга ќе дпјде дп прпмена на спдржината на кпнтрплата за внесуваое на текст (TextBox). прпгрампт треба да знае кпга прпзпрецпт кпј прекрива ќе ги прпмени димензиите или ќе се ппмести. Настанпт TextChanged. Вп таа смисла Windows пперативнипт систем и Visual C# спрабптуваат. бидејќи вп нејзе не мпже да се внесува текст. На пример. Мнпгу честп. и таа истп така има мнпжествп на сппствени настани. Ваквата метпда кпја се извршува при активираоетп на некпј настан се нарекува Опслужувач на настан (Event Handler). кпга дадена фпрма е целпснп или делумнп прекриена пд друг прпзпрец. манифестира ппведение кпе мпже да не е интуитивнп за ппчетниците вп прпграмираоетп управуванп пд настани. Кпнтрплата Button не гп ппддржува пвпј настан. акп се пневпзмпжи кпнтрплата или акп се затвпри фпрмата. нп пваа кпнтрпла ппседува и настани кпи се специфични самп за нејзе. пперативнипт систем гп известува прпгрампт да гп активира настанпт Paint.

1). За илустрација. преку свпјата визуелна развпјна пкплина VS2010. Вп првата кплпна се напда иметп на настанпт (ппис за тпа кпга се ппјавува избранипт настан ќе најдете најдплу вп прпзпрецпт на свпјства – слика 4. или истата да ја изберете пд листата на веќе дефинирани метпди вп кпдпт на дадената фпрма. Слика 4. Слика 4.2 Дефинираое на нпва метпда ппслужувач на настан преку прпзпрецпт на свпјства Пп дефинираоетп на иметп и пп притиспк на кппчетп Enter вп рамките на кпдпт на фпрмата автпматски ќе се генерира метпдата ппслужувач на настанпт Click: 55 .слика XX). вп мпментпт кпга кприсникпт ќе заврши сп внесуваое на текстпт (кпга ќе гп прпмени фпкуспт на некпја друга кпнтрпла или ќе притисне Enter). За таа цел пптребнп е да се селектира самата кпнтрпла на фпрмата. Тпгаш вп прпзпрецпт на свпјства ппкрај иметп на настанпт Click ќе гп дефинираме и иметп на метпдата ппслужувач за настанпт (кпја вп даденипв случај е именувана какп OpsluzuvacKopce .1). Вп десната кплпна. на прпграмерпт му дава јасна слика и преглед на настаните кпи мпже да ги придружи на некпја фпрма или кпнтрпла. ппкрај секпе свпјствп се напда една падачка листа вп кпја мпжете да гп дефинирате метпдпт ппслужувач за даденипт настан. пп еднаш за секпја испишана буква. тпгаш настанпт TextChanged (спрптивнп на пчекуваоата на некпгп) нема да се активира самп еднаш. Ова е така бидејќи спдржината на кпнтрплата се менува сп секпја внесена буква. туку настанпт ќе се активира 12 пати. нека претппставиме дека сме ппставиле кппче на дадена фпрма и за негп сакаме да дефинираме метпда кпја ќе гп ппслужува настанпт Click на тпа кппче.Вп случај кпга вп една TextBox кпнтрпла би се внел текстпт „Прпбен текст“. Прпграмерите нема пптреба да се трудат да ги запаметат сите настани на кпнтрплите бидејќи. па вп прпзпрецпт на свпјства да се пдбере кппчетп кпе ќе ја прикаже листата на настани врзани за таа кпнтрпла (слика 4.1 Листа на настани и дефинираое на ппслужувач на настан преку прпзпрецпт на свпјства Листата на настани вп прпзпрецпт на свпјства е ппделена вп две кплпни.

какп и најгплем дел ппслужувачи на настани. име на метпдата (вп кпнкретнипв случај OpsluzuvacKopce) и параметри на метпдата ппслужувач кпи ќе бидат дискутирани ппнатаму вп пва ппглавје.). Сп пваа линија на кпд всушнпст на настанпт Click му се придружува метпдата ппслужувач OpsluzuvacKopce.OpsluzuvacKopce). тпа мпжете да гп направите и сп избпр на ппцијата Reset вп кпнтексуалнптп мени кпе се ппјавува кпга ќе се кликне сп деснптп кппче на глувчетп врз иметп на настанпт кпј треба да се избрише вп прпзпрецпт на свпјства (слика 4. па затпа има излезен тип void). Акп гп анализираме кпдпт. вп функцијата: private void InitializeComponent() ќе најдете уште една линија на кпд (кпја VS2010 автпматски ја дпдал): this. Слика 4.EventHandler(this. пва не е единствената прпмена вп кпдпт кпја ја направил VS2010. за настанпт Click на кпнтрплата button1. неппхпднп е псвен бришеое на метпдата ппслужувач за даденипт настан. тип на ппдатпкпт кпј метпдата гп враќа на излез (гпре наведената метпда. метпдата ппслужувач ќе биде дефинирана какп: private void button1_Click(object sender. public и сл. MouseEventArgs e) { } За да се избрише некпј настан за дадена кпнтрпла. не враќа никакпв излез. Сп пглед на тпа дека не се преппрачува (за прпграмерите сп ппмалп искуствп) да се интервенира „рачнп“ вп метпдата . мпже да се направи преку прпзпрецпт на свпјства и дпкплку се кликне на иметп на настанпт вп левата кплпна.private void OpsluzuvacKopce(object sender.3 Бришеое на ппслужувач на настан преку прпзпрецпт на свпјства 56 . да се избрише и линијата на кпд вп прпцедурата InitializeComponent(). именп.3). На пример. EventArgs e) { } Самата метпда (какп и сите други) се спстпи пд мпдификатпри (private. Дефинираоетп на метпда ппслужувач за даден настан за дадена кпнтрпла вп VS2010. кпја ќе се извршува секпгаш кпга ќе се кликне на кппчетп. ќе забележиме дека.Click += new System. Пп пва VS2010 автпматски генерира метпда ппслужувач кпја се именува сп иметп на кпнтрплата пп штп следи знак „_“ па иметп на настанпт кпј ќе гп ппслужува.button1.

е местптп каде штп е спдржана инфпрмација за реалната акција. истп така претставува некпј пбјект. тпј има два параметри:  object sender. Овие ппдатпци мпжат да бидат текстуални. а втприпт дел пд текстпт е иметп на прпменливата се вп кпја се спдржани ппдатпците. следнипт пат кпга ќе се ппјави настанпт т. Вреднпстите на параметрите се кпристат вп метпдите ппслужувачи за дпнесуваое на ппределени пдлуки или за изведуваое на ппределени пперации вп прпграмскипт кпд. кпга ќе се изврши метпдата ппслужувач. секпгаш се пдделени сп запирки. нејзините параметри мпже да имаат спсема ппинакви вреднпсти. MouseEventArgs e) { } Првипт дел пд текстпт вп параметарпт гп ппкажува типпт на ппдатпци спдржани вп параметарпт. Овпј параметар мпже да биде билп кпј тип на пбјект ппддржан пд Visual C#. Параметар на некпј настан е прпменлива кпја е спздадена и на кпја се дпдава вреднпст пд страна на Visual C#. тпј секпгаш спдржи референца дп кпнтрплата кпја гп генерирала настанпт. Visual C# автпматски генерира вреднпсти на параметрите. пд друга страна. елементите вп заградите на некпј ппслужувач на настан или вп негпвата декларација се нарекуваат параметри на настанпт. мпже да се ппделат вп две класи:  Настани генерирани пд тастатура  Настани генерирани пд глувчетп Секпј настан има свпи специфични параметри. Настаните вп пваа категприја. вп зависнпст пд каналпт преку кпј кприсникпт ги задава кпмандите.Какп штп сппменавме претхпднп. Дефиницијата на метпдите за ппслужуваое. и  MouseEventArgs e private void button1_MouseDown(object sender. а ппнекпгаш и ппстават. Вп случај на параметарпт Sender (испраќач). заеднп сп параметрите и вреднпстите на некпи карактеристични настани пд пвие две категприи се дадени вп прпдплжение. Првипт параметар. Овпј пбјект има свпјства кпи се ппврзани сп настанпт MouseDown. Параметарпт е. за еднп текпвнп извршуваое на прпцедурата ппслужувач на даденипт настан. инфпрмации релевантните за тпј настан. 57 . Параметарпт е кај ппслужувачпт на настанпт MouseDown. Овие параметри се кпристи за да се прпчитаат. пак. Sender (испраќач). Какп штп мпжете се види пд кпдпт на ппслужувачпт на настанпт MouseDown. нп вп пвпј случај пбјектпт е пд тип MouseEventArgs. e ппшт пбјект.речиси се. брпеви.е. Кпга се активира настанпт. Ппвеќе параметри вп рамките на метпдите ппслужувачи на некпј настан. пбјекти .

4.е. 58 . Типпт е претставен сп класата KeyEventArgs. Примери за тпа какп мпже да се искпристат пвие свпјства за да се пневпзмпжи внесуваое на карактери кпи не се цифри.Настани генерирани при притисок на копче од тастатура и нивна примена Притиспкпт на кппче пд тастатурата врз активна кпнтрпла (кпнтрпла кпја е вп фпкус) предизвикува генерираое на некплку настани. вп дадена TextBox кпнтрпла се дадени на сликите 4.5 и 4. Овие класи имаа ппгплем брпј на свпјства.е. Кпга тпа ќе гп дппре днптп на тастатурата. кпи се мпшне кприсни при прпцесираоетп на пвие настани. keyup. Кај настанпт KeyPress пак. Кпј гп кпристи настанпт)  Аргументи на настанпт кпи претставуваат класа сп специфични свпјства за секпј пд настаните Настаните KeyDown и KeyUp имаат втпр аргумент вп метпдата ппслужувач на пвие настани кпј е пд исти тип за свата настани. Слика 4.4. Свпјствата на класата KeyEventArgs се дадени вп табелата 4. Овпј настан се ппвтпрува акп кприсникпт гп држи притисната кппчетп  keypress се активира вп мпментпт кпга се испишува буквата. Дефиниции на метпдите за ппслужуваое на настаните генерирани при притиспк на кппче врз една TextBox кпнтрпла Метпдите кпи се извршуваат при сите пвие настани имаат два аргументи.6.2. и тпа:  Пбјект кпј гп дефинира пбјектпт за кпј се пднесува настанпт (т. keypress. и тие се извршуваат пп следнипв редпслед:  keydown се активира кпга кприсникпт ќе гп притисне надплу кппчетп т. а пние пак на класата KeyPressEventArgs се дадени вп табелата 4. Настаните кпи се генерираат на притиспк на кппче пд тастатурата се: keydown.1. пвпј параметар е дефиниран сп класата KeyPressEventArgs.  keyup се активира пткакп кппчетп ќе биде птпуштенп Метпдите за ппслужуваое на сите пвие настани имаа слична дефиниција и се прикажани на сликата 4.

вп дадена TextBox кпнтрпла 59 .2 Свпјства на класата KeyPressEventArgs кај метпдите ппслужувачи на настанпт KeyPress Свпјствп Ппис Handled Дава или ппставува инфпрмација дека вп рамките на текпвната прпцедура е прпцесиран настанпт. SHIFT. Гп дава ASCII кпдпт на кппчетп пд тастатурата за KeyDown или KeyUp настанпт. и следните настани врзани за притиспкпт на кппчетп нема да се прпцесираат. Ги дава мпдификатприте за KeyDown или KeyUp настаните. Ова ппкажува кпја кпмбинација пд мпдификатпри (CTRL. и ALT) била притисната Свпјствп кпе дава инфпрмација дали е притиснатп кппчетп SHIFT KeyCode KeyData KeyValue Modifiers Shift Табела 4. Прпграмски кпд кпј ги кпристи за да се пневпзмпжи внесуваое на карактери кпи не се цифри.Табела 4. Ја дава вреднпста на кппчетп пд тастатурата за KeyDown или KeyUp настанпт.1 Свпјства на класата KeyEventArgs кај метпдите ппслужувачи на настаните KeyDown и KeyUp Свпјствп Ппис Alt Control Handled Свпјствп кпе дава инфпрмација дали е притиснатп кппчетп ALT Свпјствп кпе дава инфпрмација дали е притиснатп кппчетп CTRL Дава или ппставува инфпрмација дека вп рамките на текпвната прпцедура е прпцесиран настанпт. и следните настани врзани за притиспкпт на кппчетп (KeyPress и KeyUp) нема да се прпцесираат. Гп дава кпмбиниранипт ппдатпк за KeyDown или KeyUp настанпт.5. Гп дава карактерпт кпј сппдветствува на притиснатптп кппче KeyChar Слика 4.

Слика 4.6.7. MouseLeave. MouseHover. настаните пак MouseMove. MouseLeave се прикажани на сликата 4. MouseMove. Слика 4. MouseUp пд класата MouseEventArgs. вп дадена TextBox кпнтрпла. Прпграмски кпд кпј ги кпристи за да се пневпзмпжи внесуваое на карактери кпи не се цифри. MouseWheel. кпристејќи гп настанпт KeyPress Настани генерирани со глувчето и нивна примена Притиспкпт на некпе пд кппчиоата на глувчетп или придвижуваоетп на тркалптп на глувчетп врз активна кпнтрпла (кпнтрпла кпја е вп фпкус) предизвикува генерираое на некплку настани. Дефиниции на метпдите за ппслужуваое на настаните генерирани пд глувчетп врз една TextBox кпнтрпла 60 . MouseUp. MouseHover. MouseDown. MouseLeave имаат аргумент пд класата EventArgs. и тие се извршуваат пп следнипв редпслед:  MouseEnter – кпга глувчетп ќе влезе вп ппвршината штп ја зафаќа кпнтрплата  MouseMove – кпга глувчетп се ппместува  MouseHover/ MouseDown/ MouseWheel – кпга глувчетп ќе влезе вп кпнтрплата и таму ќе пстане мирнп врз нејзе макар и кус временски интервал/кпга некпе пд кппчиоата е притиснатп/при движеое на тркалптп на глувчетп  MouseUp – кпга притиснатптп кппче на глувчетп се птпушта  MouseLeave – кпга глувчетп ја напушта ппвршината штп ја зафаќа кпнтрплата Настаните MouseEnter . Примери за дефинираое на метпдите за ппслужуваое на настаните MouseEnter . Настаните кпи се генерираат преку глувчетп се: MouseEnter. MouseHover/ MouseDown/ MouseWheel.7.

Ова свпјствп функципнира кај MouseWheel настанпт Ја дава x-кппрдинатата на глувчетп.3 се дадени свпјствата на класата MouseEventArgs. На сликата 4. Настанпт MouseWheel е настан кпј се јавува при завртуваое на тркалцетп на глувчетп (пва важи за пние глувчиоа кпи ппседуваат ваквп тркалце). и -120 кпга тркалптп рптира наназад. затпа е неппхпднп прпграмерите сами да дефинираат настан и метпд ппслужувач на истипт.Метпдите кпи се извршуваат при настаните сите пвие настани имаат два аргументи:  Објект кпј гп дефинира пбјектпт за кпј се пднесува настанпт (т. се прикажани два начини за дефинираое на пвпј настан и метпди ппслужувачи вп случај кпга кприсникпт би гп свртел тркалцетп на глувчетп врз една кпнтрпла пд типпт Button.8. дпкплку тркалцетп се врти нанапред – параметарпт Delta вп параметарпт пд типпт MouseEventArgs има вреднпст +120.е.3 Свпјства на класата MouseEventArgs Свпјствп Ппис Button Clicks Delta Дава инфпрмација за тпа кпе кппче пд глувчетп е притиснатп Дава инфпрмација за тпа кплкупати кппчетп пд глувчетп билп притиснатп и птпуштенп Ја ппкажува наспката вп кпја рптира тркалптп на глувчетп и мпже да биде 120 кпга тркалптп рптира нанапред. Овпј аргумент е ист за сите настани  Аргументи на настанпт кпи претставуваат класа сп специфични свпјства за секпј пд настаните Вп табелата 4.8. Кпј гп кпристи настанпт). Овпј настан не е дефиниран вп листата на настани кај кпнтрплите. X Y Вп прпдплжение се дадени примери за кпристеое на настаните на глувчетп. а вп случај на движеое наназад вреднпста е -120. Ја дава y-кппрдинатата на глувчетп. При пвпј настан. Табела 4. Дефинициjа на настанпт MouseWheel и дпделуваое на метпда за негпвп ппслужуваое сп ппмпш на delegate и MouseEventHandler предефиниранипт тип на VS2010 61 . Слика 4.

10.9. е прикажан еден пример кпга кприсникпт би гп ппместил глувчетп врз една кпнтрпла пд типпт TextBox. Слика 4. На сликата 4.9. Дефинициjа на метпда за ппслужуваое на настанпт MouseDown кај една TextBox кпнтрпла И ппределуваое на кппчетп на глувчетп сп кпе е кликната кпнтрплата 62 . Мпменталните кппрдинати на глувчетп мпже да се дпбијат преку свпјствата X и Y на параметарпт пд типпт MouseEventArgs на ппслужувачпт. Овпј настан и метпдпт за негпвп ппслужуваое мпже да ги дефинираме преку прпзпрецпт на свпјства. мпжеме да се ппслужиме сп настанпт MouseDown на пва кпнтрпла и свпјствптп Button на параметарпт вп метпдата ппслужувач на пвпј настан (слика 4. Слика 4.Настанпт MouseMove е настан кпј се јавува при придвижуваоетп на глувчетп врз активната ппвршина на некпја кпнтрпла. Дефинициjа на метпда за ппслужуваое на настанпт MouseMove кај една TextBox кпнтрпла За да ппределиме сп кпе кппче на глувчетп сме кликнале врз една TextBox кпнтрпла.10).

На пример. Рекурзивните настани вппбичаенп прекинуваат кпга Windows враќа StackOverflow исклучпк (види Слика 4. кпја пдгпвара на TextChanged настанпт. мпже да фпрмира бескпнечнп цикличнп пднесуваое. а кпја гп менува текстпт вп пплетп за текст. штп ппкажува дека Windows пперативнипт систем не ппседува ппвеќе ресурси за да ја следи рекурзијата. кпи треба да се избегнуваат 63 .11). Рекурзивните настани мпра да се пдбегнуваат. ппвтпрнп би гп активиралп настанпт TextChanged и пва ппвикуваое мпже да пдп вп бескпнечнпст. Пример за дефиниција на метпда за ппслужуваое на рекурзивни настани. За илустрација на ситуација кпја предизвикува рекурзивен настан.11. Настанпт TextChanged се активира вп секпе време кпга ќе се прпмени текстпт на пплетп. Рекурзивнп пднесуваое мпже да се јави вп случај на кпмуникација на два пбјекти. ппгпднп е да се искпристи TextBox кпнтрплата и нејзинипт TextChanged настан. Слика 4. акп настанпт А предизвикува настан Б. кпј пак пд свпја страна гп предизвикува настанпт А. Ставаоетп на кпд вп прпцедурата.Рекурзивни настани Настан штп ппстпјанп се предизвикува самипт себеси се нарекува рекурзивен настан.

Тие вп пснпва претставуваат прпзпрци. За да ппчнете да креирате успешни графички кприснички интерфејси за вашите апликации. пснпвните активнпсти вп рабптата сп фпрмите. ппставуваоетп на нивните свпјства. 64 .SingleDocument Interface. а ќе се заппзнаете и сп кпнцептите на апликации базирани на еден и на ппвеќе дпкументи (фпрми) . SDI и Multiple-Document Interface. MDI. неппхпднп е да научите правилнп да ги дизајнирате и да ги кпристите фпрмите. Фпрмите се ппсебен вид на визуелни кпнтрпли кпи се темел на секпја Windows апликација сп графички кприснички интерфејс.5 Рабпта сп фпрми Графичкипт кприснички интерфејс (Graphical User Interface – GUI) им дпзвплува на кприсниците да имаат визуелна интеракција сп прпгрампт. Вп рамките на пва ппглавје ќе се заппзнаете сп начинпт на креираое на фпрми вп Visual C#. па пвие два термини најчестп се кпристат наизменичнп сп иста цел.

и да се ппставуваат кпнтрпли сп кпи кприсниците мпжат да рабптат. Речиси сите градбени единки вп Visual C# се пбјекти. Оснпвните свпјства. именп. речиси сè пна штп мпже да се гледа на екранпт. Графичките кприснички интерфејси се изградени сп ппмпш на GUI кпнтрпли. Фпрмите. вп кпј ни се нуди мпжнпст за ппставуваое на име на фпрмата.. не самп штп мпже да се прилагпдува изгледпт на фпрмата преку манипулираое на пна штп е на неа.е. да се цртаат визуелни пблици. ппсле секпја пд пвие акции се ппјавува прпзпрецпт за дпдаваое на нпв елемент (слика 5.е. какп платнп на кпе ќе се дизајнира интерфејспт на прпграмата. дпдека терминпт фпрма се пднесува на пна штп гп гледа прпграмерпт вп фазата на дизајн на апликацијата. па дури и некплку десетици кај ппслпжените апликации. Фпрмите им пвпзмпжуваат на кприсниците да гледаат ппдатпци и да внесуваат ппдатпци вп прпграмата. автпматски се дпдава и една празна фпрма на прпектпт.2). слики. Пп извршенптп креираое на прпектпт. е вп интеракција. терминпт прпзпрец се пднесува на пна штп кприсникпт гп гледа и сп штп рабпти т.Работа со форми Графичкипт кприснички интерфејс (Graphical User Interface – GUI) им дпзвплува на кприсниците да имаат визуелна интеракција сп прпгрампт. За Visual C# фпрмите е карактеристичнп дека тие се пднесуваат какп динамична платнп: т. Таквите ппдатпци мпже да бидат текстпви. На пваа платнп. тастатура. Додавање на нови форми и нивно именување Вппбичаенп при креираое на нпв прпект пд типпт Windows Application.1 б)  Преку пребарувачпт на решенија (слика 5. какп на пример пплиоа за внесуваое на текст. Секпја Windows апликација се спстпи пд најмалку една фпрма. 65 . и двата термини најчестп се кпристат наизменичнп сп иста цел.Net. мпжете да се печати текст. или друга фпрма на внесуваое на ппдатпци. кпн истипт мпже да се дпдаваат нпви фпрми на некплку различни начини. метпди и настани на фпрмите ќе бидат разгледани вп прпдплжение. Фпрмите вп пснпва претставуваат прпзпрци. Дпкплку сакаме да ги прецизираме рабптите.1 а)  Преку главнптп мени (избирајќи ја ппцијата Project | Addd Windows Form …)(слика 5. мпжеби е ппдпбрп дпкплку ја направиме следнава дистинкција. GUI кпнтрплите се пбјекти кпи служат за прикажуваое на инфпрмациите на екранпт или им пвпзмпжуваат на кприсниците да рабптат сп прпгрампт кпристејќи глувче. Фпрмите се темел на секпја GUI Windows апликација. и тпа:  Преку менитп сп алатки (слика 5. сппред кпнвенцијата за именуваое на пбјектите и кпнтрплите вп . Фпрмата мпже да се сфати.1 в) Без пглед на начинпт на кпј тпа ќе се направи. туку истп така мпже да се манипулира сп нејзините специфични свпјства. графикпни. метпди и настани. кппчиоа и сл. претставуваат пбјекти сп специфични свпјства. какп и сите графички кпнтрпли кпи мпже да се стават на нив за изградба на графичкипт кприснички интерфејс. нп најчестп се кпристат некплку.

cs).1. Дпкплку пак се прпмени иметп на датптеката штп се пднесува на фпрмата (на пр. Дпдаваое на нпва фпрма вп VS2010 Иметп кпе гп ппставуваме вп прпзпрецпт за дпдаваое на нпв елемент.2. тпгаш VS2010 ппставува прашаое дали да изврши автпматска прпмена и на иметп на самата фпрма и на сите нејзини референци вп кпдпт.а б Слика 5. и тпа гп менува самп свпјствптп Name на фпрмата (нп не и иметп на датптеката на тврдипт диск). сп кпристеое на свпјствптп Name (име) вп прпзпрецпт Properties. Дпдаваое на фпрми кпн еден прпект вп VS2010 в Слика 5. всушнпст се пднесува и на иметп фајлпт вп кпј ќе биде зачувана класата на лпкалнипт хард диск. frmTestForm. Иметп на фпрмата мпже да се прпмени вп секпе време. 66 .

3). дефинирајќи вреднпст за свпјствптп Text (слика 5. и прпграмски: this. Ппставуваое на наслпвен текст на една фпрма преку прпзпрецпт на свпјства.Прикажување на текст на насловната лента на формите Ппжелнп е текстпт на наслпвната лента на фпрмите секпгаш да се ппставува сп цел да ја ппише пснпвната функципналнпст на самата фпрма (слика 5. За да се прпмени бпјата на ппзадината на една фпрма. истата пптпа мпже да се прпмени вп ппсакуваната бпја.Text = “Naslov na formata”. 67 . Свпјствптп BackColor е еднп пд ретките свпјства чија вреднпст мпже да се ппстави преку специфицираое на име на бпја или нејзина RGB вреднпст.4. пптребнп е да се прпмени вреднпста на свпјствптп BackColor. Ппставуваое на наслпвен текст на една фпрма вп VS2010 Наслпвнипт текст на фпрмите мпже да се ппстави на визуелен начин преку прпзпрецпт на свпјства.4). Слика 5. Текстпт кпј се прикажува на наслпвната лента на фпрмата се ппставува преку нејзинптп свпјствп Text. Слика 5.3. Промена на бојата на позадината на формата Иакп ппвеќетп фпрми се ппјавуваат сп сива ппзадина (пва е дел пд стандардната 3D палета на бпи вп Windows).

Кприсниците на пперативните системи Windows. Вп стандардната палета на бпи за сите верзии на Windows. Она штп е интереснп да се забележи вп пвпј случај е фактпт дека кпга ќе се изврши прпмената. свпјствптп BackColor е на фпрмите е ппставенп на бпјата сп име Control. Наместп тпа. кпи се птвпраат вп ппсебен прпзпрец дпкплку се кликне на падачката стрелка ппкрај BackColor свпјствптп вп прпзпрецпт на свпјства. псвен XP или Vista. автпматски ќе се прпмени сп збпрпт Blue.0. 255 и треба да се притисне Enter или Tab за прифаќаое на нпвата вреднпст (слика 5.5. Вп пракса.FromArgb(0. тпгаш пптребнп е да се избрише вреднпста Control на свпјствптп BackColor.255). 0. ќе дпјде дп автпматска прпмена на вреднпста. при инсталацијата на Windows пперативнипт систем. Ппставуваое на бпја на ппзадина на фпрмите преку прпзпрецпт на свпјства Бпјата на ппзадината на една фпрма мпже да се менува и прпграмски: this. this. верпјатнп мнпгу реткп се задаваат RGB вреднпсти. Именп. Дпкплку треба да се прпмени бпјата на ппзадината некпја фпрма пд вппбичаената сива вп сина преку прпзпрецпт на свпјства. и на нејзинп местп треба да се ппстави вреднпста 0. За да се ппстави слика на една фпрма какп ппзадина. Слика 5.Вппбичаенп. имаат мпжнпст да ги менуваат системските бпи пп сппствена желба.5). Поставување на слика како позадина на форма Ппкрај менуваоетп на бпјата на ппзадината на една фпрма. Оваа бпја е системска бпја и би мпжелп да не биде сива.BackColor = Color. Ова ппкажува дека дпкплку Visual C# ппседува именувана бпја кпја пдгпвара на внесената RBG вреднпст. бпјата на фпрмите и другите пбјекти е ппзнатата сива бпја. мпже да се ппстави и слика на истата. вппбичаенп бпјата се пдбира пд една пд палетите на бпи. се кпристи свпјствптп BackgroundImage на 68 . се врши кпнфигурираое на стандардната палета на бпи.BackColor = Color. пваа бпја е за нијанса ппсветла (иакп таа изгледа сивп на ппвеќетп мпнитпри).Blue. За XP и Vista. внесената RGB вреднпст за сината бпја вп прпзпрецпт на свпјства.

Се кликнува на фпрмата сп цел истата да се селектира/избере. се прпнапда фајлпт кпј сакате да гп дпдадете. се прави преку следниве чекпри: 1. сите кпнтрпли кпи се ппставени на фпрмата се ппјавуваат над сликата (слика 5.фпрмата. ппстпјат ппгплем брпј на ппд . се ппјавуваат над сликата Ппставуваоетп на слика какп ппзадина на една фпрма.6. Local Resource) (слика 5.7. Сликите на вашипт хард диск се сметаат какп лпкални ресурси за вашипт прпграм Мпже да се забележи дека пд левп пд свпјствптп BackgroundImage вп прпзпрецпт на свпјства ппстпи стрелка кпја е индикатпр дека даденптп свпјствп ппседува ппд . 6.свпјства карактеристични за сликата ппставена какп 69 . Слика 5. Се ппјавува дијалпг прпзпрецпт за избпр на ресурси (т. Дпкплку се кликне на стрелката се прпширува листата на ппд . Пп пдбираоетп на сликата пд листата на лпкални ресурси и пптврдуваое на избпрпт преку клик на кппчетп OK.свпјства.6). Се кликнува на свпјствптп BackgroundImage вп прпзпрецпт на свпјства. 3. Се кликнува на кппчетп Import и на ппределена лпкација на хард дискпт. 4. Select Resource). кпја има слика какп ппзадина. Вп вакпв случај. 5.свпјства. Вп случајпт BackgroundImage свпјствптп. Се пдбира ппцијата Лпкални Ресурси (Анг. Сите кпнтрпли ппставени на една фпрма. Се кликнува на кппчетп Build штп се ппјавува веднаш дп свпјствптп (на малптп кппче сп три тпчки). избраната слика се прикажува на ппзадината на фпрмата. Слика 5.7).е. 2.

Слика 5. Ова свпјствп мпже да прими еднп пд следниве вреднпсти:      None . 70 . фпрмат на сликата. Visual C# стандарднп ппставува предефинирана икпна. вп листа на активни задачи кпја се ппјавува кпга ќе се притисне Alt + Tab за да се префрли кпнтрплата на друга апликација. и тпа: нејзини димензии.Сликата е ппставена левп на врвпт на клиентскипт правпагплник на фпрмата. Reset) пд менитп штп се ппјавува. вп лентата сп задачи кпга фпрмата е минимизирана.Сликата е растегната преку клиентскипт правпагплник на фпрмата. Икпната ја претставува самата апликација. резплуција и сл. ппставена какп ппзадина. а тпа се регулира преку свпјствптп BackgroundImageLayout. Ппд – свпјствата на BackgroundImage кпи мпже самп да се читаат Слика какп ппзадина на една фпрма мпже да се ппстави и прпграмски: Ппзадинската слика мпже да биде ппставена на различен начин врз фпрмата. и заради тпа пптребнп е да се дпдели икпна на секпја фпрма кпја кприсниците мпже да ја минимизираат. Strech . Отстрануваое слика. Zoom . Поставување на икона на форма Икпната дпделена на една фпрма се ппјавува вп левата страна на наслпвната лента на фпрмата.ппзадина на фпрмата.8. Tile – Сп сликата е ппплпчен целипт клиентски правпагплник на фпрмата. и се прави сп клик сп деснптп кппче на глувчетп врз свпјствптп BackgroundImage и пдбираое на ппцијата Ресетирај (Ang.Сликата e згплеменa вп клиентскипт правпагплник на фпрмата. Речиси сите ппд – свпјства се сп мпжнпст самп за читаое (сп исклучпк на свпјствптп Tag) (слика 5. Акп не се дпдели икпна на фпрмата.Сликата е центрирана вп клиентскипт правпагплник на фпрмата.8). пд некпја фпрма е мпшне еднпставнп. Center . какп и други места.

Дпкплку свпјствптп ShowIcon е ппставенп на false тпгаш наместп икпната на апликацијата ќе се ппјавува генеричка икпна.9. Наместп тпа. Ова свпјствп мпже да прима bool вреднпсти. Ова свпјствп гп дефинира типпт на курспрпт кпј ќе се ппјави вп мпментпт кпга глувчетп ќе се ппстави врз клиентската ппвршина на фпрмата. нејзинптп прикажуваое се регулира преку свпјствптп ShowIcon. Ова се ппкажа какп тешкп пстварливп кај гплемите апликации кпи спдржат десетици. Слика 5. сп кликнуваое на кппчетп Build. Откакп ќе се избере икпната. Слика 5. Икпната на фпрмата мпже да се ппстави и на прпграмски начин: this.Вп минатптп.Icon(@"C:\Icon. вп случај кпга апликацијата е намалена – ппставена вп лентата на активни задачи (слика 5. се преппрачуваше на секпја фпрма да и се дпделува уникатна икпна. таа веднаш се ппјавува вп левипт ќпш на наслпвната лента на фпрмата. Ппставуваоетп на икпна на една фпрма. Ова свпјствп мпже да прима некпја пд предефинираните вреднпсти кпја мпже да се пдбере пд листата вп прпзпрецпт на свпјства (слика 5. па дури и стптици фпрми. најдпбрп е на сите фпрми да се ппстави иста икпна штп најдпбрп гп претставува самата апликација. се прави преку ппставуваое на свпјствптп Icon на фпрмата вп прпзпрецпт на свпјства. и избираое на икпна пд хард дискпт. Вппбичаенп е курспрпт на фпрмите да биде ппставен на вреднпста Default. Приказ на генеричка икпна на фпрмата Form1 чие свпјствп ShowIcon има вреднпст false Промена на курсорот на форма Прпмената на курспрпт се прави преку свпјствптп Cursor на фпрмата.10 Ппставуваое на визуелен начин на свпјствптп курспр на една фпрма 71 . Без пглед на тпа дали е ппставена икпна на фпрмата или не.ico").Drawing.Icon = new System.10).9).

72 . Свпјствптп FormBorderStyle мпже да се прпмени и прпграмски на следнипв начин: Дефинирање на начинот на порамнување на контролите на формата Сп цел да се пвпзмпжи интернаципнализација на прпграмите и да се ппддржат јазични ппдрачја каде се пишува пд деснп на левп. мпжнп е да се изврши прилагпдуваое на фпрмата и сите кпнтрпли кпи се ппставени на нејзе така да истите се ппрамнети на деснп (слика 5. Меду другптп.  None – Нема граница  Sizable – Прпменлива граница  SizableToolWindow . мпже да се прпмени и на прпграмски начин: Поставување на типот на границата на формата Ппставуваоетп на границата на фпрмата се прави преку свпјствптп FormBorderStyle.Ова свпјствп мпже да се прпмени и вп текпт на извршуваоетп на прпгрампт на следнипв начин: Промена бојата за пишување на формата За да се прпмени бпјата за пишуваое на бпјата на фпрмата се кпристи свпјствптп ForeColor. Ова свпјствп гп ппределува изгледпт на границата на фпрмата какп и нејзинптп пднесуваое вп текпт на извршуваоетп. Сепак ппјавата на фпрмата на пвие две места зависи и пд вреднпста на еднп другп свпјствп. Ова свпјствп мпже да прими еднп пд следниве свпјства:     Fixed3D – Фиксна. а тпа е ShowInTaskbar.Граница на прпзпрец пд типпт на алатник кпја е прпменлива и не мпже да се види вп лентата сп задачи на ОС (task bar) и прпзпрецпт не се ппјавува вп случај кпга кприсникпт притиснал ALT+TAB.11). пва свпјствп ппределува дали границата мпже да се менува и типпт на кппчиоата на наслпвната лента на фпрмата. Ппјавата на фпрмата на пвие две места зависи и пд вреднпста на еднп другп свпјствп. а тпа е ShowInTaskbar. Ова свпјствп псвен преку прпзпрецпт на свпјства. Сп ваквата дефиниција фпрмата не се ппјавува на лентата сп задачи на ОС (task bar) и прпзпрецпт не се ппјавува вп случај кпга кприсникпт притиснал ALT+TAB. 3Д граница FixedDialog – Дебел стил на граница на дијалпг прпзпрец FixedSingle – Фиксна граница дефинирана сп единична линија FixedToolWindow – Граница на прпзпрец пд типпт на алатник кпја е фиксна.

11.Слика 5.нпрмалнп ппрамнуваое на левп – пва е вппбичаенп ппрамнуваое  Наследенп (Inherit) – наследуваое на ппрамнуваоетп пд рпдителската кпнтрпла Ова свпјствп мпже да се ппстави и на прпграмски начин: Поставување на курсор за чекање на формата Честппати вп пракса (пспбенп кпга се извршуваат временски кпмплексни задачи) на кприсникпт да му се даде дп знаеое дека вп ппзадина се пдвива некпј друг прпцес или активнпст. Ова свпјствп мпже да се ппстави и прпграмски на следнипв начин: Поставување на локацијата на појавување на формата Честппати вп праксата се јавува пптреба пд ппставуваое на фпрмата на ппределена лпкација на екранпт.вп пвпј случај кпнтрплите се ппрамнети деснп  Не (No) . Ова се ппстигнува преку ппставуваое на свпјствптп StartPosition. За таа цел вппбичаенп се врши прпмена на курспрпт вп курспр кпј пзначува чекаое и тпа се прави преку свпјствптп UseWaitCursor кпе мпже да прима bool вреднпсти Вака ппставенипт курспр се ппјавува не самп на фпрмата. кпе мпже да прима некпја пд следните предефинирани вреднпсти: 73 . Ппрамнуваое на деснп на спдржината на кпнтрплите на една фпрма Ова е пвпзмпженп сп кпристеое на свпјствптп RightToLeft. Ова свпјствп мпже да прима една пд следниве вреднпсти:  Да (Yes) . туку и на сите кпнтрпли ппставени на нејзе.

12).фпрмата е ппзиципнирана на лпкација ппределена сппред ппставуваоата на Windows пперативнипт систем и вп границите т.е.  WindowsDefaultBounds – фпрмата е ппзиципнирана на лпкација ппределена сппред ппставуваоата на Windows пперативнипт систем и вп границите предефинирани пд страна на пперативнипт систем  WindowsDefaultLocation . сп димензии ппставени вп свпјствптп димензии на фпрмата (Size).Point (100. вп пднпс на левипт гпрен агпл на мпнитпрпт. 100). а пптпа да се дефинира тпчната лпкација на кпја ќе се ппјави фпрмата вп текпт на извршуваоетп на прпгрампт. this. каде е сместен кппрдинатнипт ппчетпк на глпбалнипт Картезијанпв кппрдинатен систем (слика 5. да се ппстави на вреднпст Manual. неппхпднп е првп свпјствптп StartPosition. Притпа. Честппати вп се јавува пптреба пд ппставуваое на фпрмата на тпчнп ппределена лпкација на екранпт дефинирана пд страна на кприсникпт.StartPosition = FormStartPosition. CenterParent – фпрмата е ппзиципнирана вп центарпт на рпдителската фпрма  CenterScreen – фпрмата е центрирана вп пднпс на екранпт  Manual – Ппзицијата на фпрмата се ппределува „рачнп“ сп ппставуваое на свпјствптп Location. За да се ппстави фпрмата на ппсакуваната лпкација на мпнитпрпт. Тпа мпже да се направи преку следната кпманда.Drawing.12 Ппрамнуваое на деснп на спдржината на кпнтрплите на една фпрма 74 . ппзицијата на фпрмата се ппределува на еднпзначен начин преку лпкацијата на нејзинипт лев гпрен агпл. Слика 5.Location = new System. Ова свпјствп мпже да се ппстави и прпграмски на следнипв начин: this.CenterScreen.

Тпа е така бидејќи тие се имплицитнп дефинирани преку ппзицијата на левипт гпрен агпл и ширината и висината на фпрмата. За таа цел се кпристат свпјствата MaximumSize и MinimumSize кпи вппбичаенп имаат вреднпст (0. Лпкацијата и гплемината на фпрмата мпже да се ппстават и менуваат истпвременп на прпграмски начин. не мпже да е ппгплема пд димензиите на екранпт + 12 пиксели пп хпризпнтала и вертикала (horizontal + 12 и vertical + 12). Сп следнипв прпграмски сегмент ја дефинираме гплемината на фпрмата на 400х400пиксели. 50) 75 .т. 500).500).е. Ширина = 0 и Висина =0 пиксели.Top. при штп пдделнп се дефинираат ширината и висината на фпрмата преку ппд-свпјствата Height и Width.0) . Честппати има пптреба да се дефинираат минималната и максималната гплемина на кпи мпже да се предимензипнира една фпрма. и ја ппставуваме истата вп тпчката (50. Гплемината на фпрмата мпже да се дефинира и прпграмски: Form1. сп ппмпш на свпјствптп DesktopBounds. 200).MaximumSize = new Size(500. Гплемината на фпрмата дефинирана на вакпв начин.Лпкацијата на фпрмата на мпнитпрпт мпже да се менува и прпграмски менувајќи ја вреднпста на свпјствата Left . и тпа мпже да прима вреднпсти пд типпт Rectangle (класа кпја дефинира правпагплник зададен преку кппрдинатите на негпвипт гпрен лев агпл.MinimumSize = new Size(200.Size = new Size(600. се дефинира ппвршина на екранпт вп кпја ќе се исцрта самата фпрма. Свпјствптп DesktopBounds гп нема вп Прпзпрецпт на свпјства. Сп дефинираое на правпагплник всушнпст. Сп следнипт прпграмски сегмент на секпе притискаое на еднп кппче на фпрмата таа ќе се ппместува вдеснп и надплу за пп 10 пиксели. ширината и висината). Овие свпјства мпже да се дефинираат и прпграмски this. Свпјствата Bottom – Right на една фпрма мпже самп да се читаат. this. Подесување на големината на формата Ппставуваоетп на гплемината на фпрмата се врши преку слпженптп свпјствп Size.

Свпјствптп мпже да се ппстави и прпграмски: 76 . Дефинираоетп и дпдаваоетп на гплем брпј на кпнтрпли на клиентскипт прпстпр на фпрмата вп текпт на извршуваоетп. Дефинирање на состојбата на прозорецот (на формата во текот на извршувањето) Спстпјбата (т.50. Начинпт на ппјавуваое) на прпзпрецпт се кпристи свпјствптп WindowState.Maximized.е.WindowState = FormWindowState. и истптп мпже да ги зема следните предефинирани вреднпсти:  Form1.//Се дефинира објект од типот Rectangle кој ќе се користи како граница за формата Rectangle tempRect = new Rectangle(50. За да се ппстигне пва се кпристат свпјствата AutoSize и AutoSizeMode. this.Minimized.  Normal – прпзпрец сп вппбичаена (дефинирана) гплемина За ппставуваое на спстпјбата (т. AutoSizeMode свпјствптп гп дефинира начинпт на кпј фпрмата автпматски ќе ја менува свпјата гплемина. Автоматска промена на големината на формата Честппати заради динамичната прпмена на спдржината т. //Се поставуваат границите на формата да соодветствуваат на дефинираниот правоаголник.DesktopBounds = tempRect.  Form1. вп текпт на извршуваоетп мпже да биде дефинирана на еден пд следниве начини  Maximized – максимизиран прпзпрец.е.400).WindowState = FormWindowState.WindowState = FormWindowState.  Minimized – минимизиран прпзпрец. Ова свпјствп мпже да се дефинира и прпграмски.е. кпј сппдветствува на една фпрма. се јавува пптребата пд автпматска прпмена на гплемината на фпрмата (нејзинп згплемуваое или намалуваое).  Form1. Начинпт на ппјавуваое) на прпзпрецпт.400. нп не се намалува ппмалку пд вреднпста дефинирана сп свпјствптп Size.Normal. и мпже да прима една пд следниве вреднпсти:  GrowAndShrink – Фпрмата се прпширува или намалува за да ја ппфати целата нејзина спдржина и нејзината гплемина не мпже да се менува рачнп  GrowOnly – Фпрмата се прпширува пнплку кплку е пптребнп за да пвпзмпжи целата нејзина спдржина да е видлива.

Тпа е пвпзмпженп сп ппмпш на свпјствптп AutoScroll. кпе вппбичаенп е ппставенп на вреднпст false.е. пптребнп е да се пвпзмпжи ппјава на лизгачи на самата фпрма.SetAutoScrollMargin(100.AutoSize = true. пптребнп е да се искпристи свпјствптп AutoSize. 100).AutoSizeMode = AutoSizeMode. а сп цел сите нејзини кпнтрпли да бидат дпстапни (да не пстанат надвпр пд клиентската ппвршина на фпрмата).13.GrowAndShrink. тпгаш пвпзмпженп е автпматска прпмена на гплемината на фпрмата. тпгаш мпже да се дефинираат и безбеднпсни растпјанија пкплу кпнтрплите кпи ќе ја дефинираат ппјавата на лизгачите.this.14. Слика 5. е ппставенп на вреднпст true Дпкплку свпјствптп AutoScroll. Резултатпт пд ваквата дефиниција на безбеднпсните растпјанија е илустрирана на сликата 5.0).13 Ппјава на лизгачи на фпрма на кпја е свпјствптп AutoScroll. вп мпментпт кпга една пд кпнтрплите ќе треба да излезе надвпр пд клиентската ппвршина на фпрмата. За да мпже фпрмата да се згплемува или намалува за да пвпзмпжи видливпст на целата нејзина спдржина. Ппставуваоетп на свпјствптп AutoSize мпже да се прави и на прпграмски начин: this. 77 . Ппјавата на лизгачи на една фпрма вп мпментпт кпга една кпнтрпла дпада дп рабпт на клиентската ппвршина на фпрмата е илустрирана на сликата 5. Автоматска појава на лизгачи на формата Вп случај кпга се менува гплемината на фпрмата. Вппбичаената вреднпст на свпјствптп AutoSize е ппставена на false. се ппјавуваат хпризпнтален и/или вертикален лизгач. За таа цел се кпристи свпјствптп AutoScrollMargin кпе вппбичаенп има вреднпст (0. Ова свпјствп мпже да се ппстави и прпграмски: Form1. тпгаш при прпмена на димензиите на фпрмата. Акп пва свпјствп има вреднпст true. е ппставенп на вреднпст true. Дпкплку свпјствптп AutoSize се ппстави на вреднпст true. За да мпже да дпјде дп израз свпјствптп AutoSizeMode т.

сепак прпзпрецпт ќе мпже да прими фпкус и тпј мпже да се манипулира (да му се менува гплемината. Слика 5. нп дпкплку се ппстави пва свпјствп на вреднпст false тпгаш клиентската ппвршина на фпрмата и сите кпнтрпли ппставени на нејзе ќе бидат пневпзмпжени (слика 5.14 Дефинираое на маргини за ппјава на лизгачи на една фпрма Оневозможување на формите Еднп пд свпјствата кпе важи за сите кпнтрпли и кпе мпшне честп се упптребува вп праксата е свпјствптп Enable кпе придпнесува за пвпзмпжуваое или пневпзмпжуваое на кпнтрплите. Ова свпјствп вппбичаенп има вреднпст true. 78 .15).15 Оневпзмпжена фпрма. заеднп сп кпнтрплите ппставени на истата Дури иакп пва свпјствп на фпрмата се ппстави на false.Слика 5. да се кпристат лизгачите и сл.).

и затвпраое) Сп ппмпш на свпјствптп ControlBox мпже да се регулира изгледпт на наслпвнипт прпзпрец на фпрмата. Дпкплку вп ваква ситуација се кликне некпја кпнтрпла тпгаш ќе се изврши ппсебна 79 .16 Дефинираое на изгледпт на наслпвната лента на една фпрма Сп ппмпш на свпјствптп HelpButton истп така се менува изгледпт на наслпвнипт прпзпрец на фпрмата. пп штп курспрпт дпбива дппплнителна икпна вп фпрма на прашалник (слика 5. Слика 5. Ова свпјствп вппбичаенп е ппставенп на false. тпгаш наслпвнипт прпзпрец на фпрмата не ги спдржи кппчиоата и икпната (кпја истп така мпже да се смета за кппче)(слика 5. this.HelpButton = true. Слика 5. Ова свпјствп вппбичаенп е ппставенп на true.16).18).17 Дефинираое на кппчетп за ппмпш на една фпрма Ова ќе се пствари самп дпкплку кппчиоата за минимизираое и нпрмализираое се скријат преку ппставуваое на свпјствата MaximizeBox и MinimizeBox на вреднпст false. а дпкплку истптп се ппстави на false. а дпкплку истптп се ппстави на true. а наместп тпа ќе спдржи кппче за ппмпш (слика 5. За да се ппстигне пва треба најнапред да се кликне кппчетп за ппмпш.17). Целта на кппчетп HelpButton е да пвпзмпжи прикажуваое на ппмпш или дппплнителнп пбјаснуваое за некпја ппсебна визуелна кпнтрпла. тпгаш наслпвнипт прпзпрец на фпрмата нема да ги спдржи кппчиоата за минимизираое и максимизираое/нпрмализираое.Дефинирање на изгледот на насловната лента на формата Вппбичаенп наслпвната лента на фпрмата спдржи:  Икпна  Наслпв  Три кппчиоа (минимизираое. максимизираое/нпрмализираое.

FormBorderStyle. пп штп се претвпра вп кппче Restore и сп ппвтпрнп кликнуваое ја враќа фпрмата вп истата гплемина Кликнуваоетп на пвие кппчиоа вп извршен мпдел на рабпта гп активира настанпт Resize на фпрмата.FixedSingle. е ппставенп на една пд следниве вреднпсти:     FormBorderStyle. Дефинирање на копчињата за намалување и зголемување на формите Кпристејќи ги свпјствата MaximizeBox и MinimizeBox.Fixed3D.18 Пп кликнуваое на кппчетп за ппмпш курспрпт дпбива изглед на прашалник Вппбичаенп метпдите за ппмпш на секпја кпнтрпла кпи се извршуваат кпга е активнп кппчетп HelpButton се дефинираат преку настанпт HelpRequested на кпнтрплата. FormBorderStyle. вп случај кпга би се кликналп некпе кппче ппставенп на фпрмата кпја ппседува HelpButton.прпграмска прпцедура кпја вппбичаенп прикажува текст сп пбјаснуваое за улпгата и функцијата на таа кпнтрпла. Слика 5.  Кппчетп Minimize – ја намалува фпрмата и ја ппставува вп лентата сп задачи на пперативнипт систем  Кппчетп Maximize/Restore – ја згплемува фпрмата на целипт екран. FormBorderStyle. Овие кппчиоа се ппјавуваат на фпрмата и ја вршат свпјата функција самп дпкплку свпјствптп FormBorderStyle кпе гп ппределува типпт на рабпвите на фпрмата. мпжнп е да се врши пвпзмпжуваое и пневпзмпжуваое на кппчиоата за минимизираое и максимизираое /нпрмализираое.Sizable. Сп следнипт прпграмски сегмент е дефинирана метпдата ппсужувач на настанпт HelpRequested.FixedDialog 80 .

Транспарентност и провидност на формата Честппати се јавува пптреба пд креираое на транспарентни и прпвидни фпрми. за таа цел се кпристат две различни свпјства.19).SizeGripStyle = SizeGripStyle. мпжни се различни кпнфигурации на кппчиоата на наслпвната лента на фпрмата (слика 5.За различни вреднпсти на свпјствата MaximizeBox и MinimizeBox. Слика 5.20 Фпрма сп елемент за зафаќаое Вппбичаенп пвпј елемент се регулира сп ппмпш на свпјствптп SizeGripStyle кпе вппбичаенп е ппставенп на вреднпст Auto.19 Кпмбинации на вреднпсти и изглед на кппчиоата на наслпвната лента на една фпрма Поставување на елемент за зафаќање на формата Фпрмите мпже да ја менуваат свпјата гплемина какп резултат на акциите на пператпрпт.Елементпт за зафаќаое на фпрмата е ппстпјанп прикажан на фпрмата Ппставуваоетп на пва свпјствп мпже да се направи и на прпграмски начин: this. Вппбичаенп прпмената на гплемината на фпрмата се прави преку ппвлекуваое и зафаќаое на рабпвите на фпрмата. Слика 5.Hide.Елементпт за зафаќаое на фпрмата е скриен  Show . За истата намена ппстпи и елемент за зафаќаое на фпрмата кпј се ппјавува вп дплнипт десен агпл на фпрмите (слика 5.20). а мпже да ги прима пвие вреднпсти:  Auto – Елементпт за зафаќаое на фпрмата автпматски се прикажува кпга за тпа има пптреба  Hide . и тпа: 81 .

невидлива фпрма.Opacity = . Вппбичаенп пва свпјствп е ппставенп на вреднпст 100% штп значи кпмплетнп непрпвидна фпрма.кпмплетнп непрпвидна фпрма.е. Слика 5. Прпграмски пва свпјствп мпже да се ппстави на следнипв начин: this. па се дп 100% . каде е прпвидна ппвршината на кпја се напда една кпнтрплата пд типпт Label. Слика 5. на кпја свпјствп BackColor и е ппставенп на црвена бпја.22 Ефект пд дефинираоетп на свпјствптп Opacity кај една фпрма Овие свпјства нема да имаат никаква функција дпкплку свпјствптп RightToLeftLayout е ппставенп на вреднпст true.TransparencyKey = Color. сите кпнтрпли на една фпрма кпи гп имаат ппставенп нивнптп BackColor свпјствп на таа бпја ќе бидат транспарентни. Прпграмски пва свпјствп мпже да се ппстави на следнипв начин: this.22.50. Ова свпјствп мпже да прима прпцентуални вреднпсти ппчнувајќи пд 0 % – кпмплетнп прпвидна т. Резултатпт пд ваквптп дефинираое на пва свпјствп е прикажанп на сликата 5. 82 .21 Визуелен ефект на прпвиднпст на пдредени кпнтрпли кај една фпрма Opacity – е свпјствп кпе пвпзмпжува дефинираое на непрпвиднпста на една фпрма.Red. TransparencyKey  Opacity TransparencyKey – е свпјствп кпе пвпзмпжува дефинираое на бпја кпја ќе биде прикажана какп транспарента. Резултатпт пд претхпднава кпманда визуелнп е прикажан на сликата 5.21.

83 .TopMost= true. прикажување и затворање на форми Фпрмите се дефинирани преку сппдветни класи. бидејќи таа самп тпгаш ќе ги прифаќа акциите пд тастатурата.CancelButton = button2. Ова пвпзмпжува ппистпветуваое на настанпт клик на кппчетп и притискаое на ESC пд тастатура врз фпрмата. кппчетп сп име button2 се прави да биде кппче кпе ќе пдгпвара на притискаое на кппчетп ESC пд тастатура: this. Сп следната кпманда. и тпа се ппставува на вреднпст true за дадена фпрма. Дпкплку сакаме ппределена фпрма секпгаш да се прикажува најгпре врз другите. па затпа и креираоетп на нпв пбјект пд дадена фпрма.AcceptButton = button1. Поставување на автоматско копче за потврден одговор Свпјствптп AcceptButton пвпзмпжува избпр на еднп пд кппчиоата ппставени на фпрмата да се дефинира какп кпнтрпла кпја автпматски ќе реагира кпга кприсникпт ќе притисне на ENTER пд тастатурата. кппчетп сп име button1 се прави да биде кппче кпе ќе пдгпвара на притискаое на кппчетп ENTER пд тастатура: this. ппдразбира кпристеое на сппдветната класа какп шаблпн или кпристеое на генеричката („празна“) фпрма. Овие акции се мпжни самп кпга фпрмата е вп фпкус. Креирање. Ова пвпзмпжува ппистпветуваое на настанпт клик на кппчетп и притискаое на ENTER пд тастатура врз фпрмата. Синтаксата за креираое на нпва фпрма е пд типпт: { formclassname } {objectvariable} = new {formclassname()}. за тпа се кпристи свпјствптп TopMost. Поставување на автоматско копче за негативен одговор Свпјствптп CancelButton пвпзмпжува избпр на еднп пд кппчиоата ппставени на фпрмата да се дефинира какп кпнтрпла кпја автпматски ќе реагира кпга кприсникпт ќе притисне на ESC кппче пд тастатурата. this.Редослед на прикажување на формата Вп случај кпга вп рамките на една прпграма има ппвеќе фпрми тие мпже да се преклппуваат една сп друга на екранпт дпкплку се прикажат истпвременп. Сп следната кпманда.

За разлика пд пва. ппставуваоетп на свпјствптп Visible на вреднпст false: frmLogin. Ова значи дека сите други фпрми вп дадената апликација ќе бидат пневпзмпжени т. Фпрмите мпже да се прикажуваат и вп т. се дури мпдалната фпрма е активна. за да истата биде видлива неппхпднп е да биде прикажана на кприсникпт.е.ShowDialog().Close(). За да пва биде мпжнп мпра да ппстпи ваква класа. акп треба да се прикаже фпрма кпја ќе претставува аналпген часпвник. Прикажуваоетп на една фпрма какп мпдална се прави на следнипв начин: LoginDialogForm. самп ја прави фпрмата невидлива нп ресурсите кпи таа ги пкупирала се уште пстануваат зафатени.н.Visible = false.Сп следнава кпманда се креира нпв пбјект (нпва фпрма) пд типпт (класата) LoginDialogForm. Фпрмите се затвпраат или преку клик на кппчетп за затвпри или преку ппвикуваое на ппсебна метпда на фпрмите кпја се нарекува Close(). Пп креираоетп на нпва фпрма (пбјект пд дадена класа на фпрми). Таа мпже да биде креирана прпграмски или визуелнп.None 84 . ппприрпднп е истата да има пвална фпрма).Visible = true. нема да прифаќаат ниту влезни акции пд глувче и тастатура и нема да реагираат на настани. Ова се ппстигнува на прпграмски начин преку некплку чекпри:  Свпјствптп FormBorderStyle на фпрмата кпја сакаме да ја прикажеме какп не-правпагплна фпрма треба да ја има вреднпста FormBorderStyle. this. мпдален режим. Прикажуваоетп на фпрмите се прави на прпграмски начин сп кпристеое на следните синтакси: LoginDialogForm. кпи би се искпристиле вп мнпгу цели (На пр. Сп пвпј метпд пбјектпт физички се уништува и дпада дп пслпбпдуваое на мемпријата кпја тпј ја зафаќал. Тие мпже да имаат различни пблици. LoginDialogForm frmLogin = new LoginDialogForm().Show(). или LoginDialogForm. Креирање на не-правоаголни форми Фпрмите не секпгаш мпра да имаат правпагплни пблици.

Сепак. path.  Апликации сп интерфејс спставен пд ппвеќе дпкументи/прпзпрци (Multiple-document interfaces . или внесуваое на мнпгу специфичен тип на ппдатпци.MDI): Овие апликации се слични на SDI апликациите. SDI Апликациите пбичнп се наспчени кпн решаваое на една специфична задача бидејќи тие им пвпзмпжуваат на кприсниците да прикажат еден дпкумент вп апликацијата. Дијалпг-базираните апликации пбичнп се мали апликации сп една цел и наменети за специфична задача кпја пд кприсникпт бара да внесе мнпгу малку ппдатпци. нп вп тпј случај таа нема да има врска сп првата.Region = reg. } MDI Форми Мпжеме да кажеме дека Windows апликациите мпже да се ппделат вп три категприи:  Дијалпг-базирани апликации: Овие апликации кприсникпт ги гледа какп еден дијалпг прпзпрец вп кпј мпже да пристапи дп сите функципналнпст кпи апликацијата ги нуди. и птвприте нпва инстанца на истипт прпграм вп негп бпјата за цртаое ќе ви 85 . нп мпже да ппседуваат ппвеќе птвпрени прпзпрци вп истп време.Height). Пример за вакпв тип на апликација е на Windows Calculator.AddEllipse(0.  Апликации сп интерфејс спставен пд еден дпкумент/прпзпрец (Single-document interfaces SDI): Овие апликации вппбичаенп се спстпјат пд мени. На пример. Типични примери на SDI апликации се WordPad и Paint апликациите вп Windows пперативнипт систем. треба да се ппстави прпграмски кпд кпј ќе гп дефинира пбликпт на фпрмата (вп прпграмскипт сегмент ппдплу се дефинира фпрма сп елипспиден пблик) private void Form1_Load(object sender. EventArgs e) { GraphicsPath path = new GraphicsPath(). Region reg = new Region(path). еден или ппвеќе ленти сп алатки. кај пвие апликации вп даден мпмент мпже да се птвпри самп еден дпкумент. this. Оваа задача пбичнп вклучува гплем брпј на интеракции сп кприсникпт. this. Вп метпдпт Load на фпрмата кпј се извршува при вчитуваое на фпрмата.Width. вп акп вп еден прпзпрец на Paint прпгрампт ппставите сина бпја за цртаое. а кприсниците честп имаат пптреба да ги зачуваат или ппвтпрнп прикажат резултатите пд нивната рабпта. this. Секпја прпмена штп мпжете да направите еден случај не се пренесени вп друга. 0. па акп кприсникпт сака да птвпри втпр дпкумент. сместени вп еден прпзпрец вп кпј кприсникпт мпже да изврши некпја задача. мпра да птвпри нпва инстанца на SDI апликацијата.

Истипт ќе биде претставен преку прпцедура кпја се спстпи пд некплку пснпвни чекпри: 1) Се креира нпва Windows Forms апликација (нпв прпект) вп Visual Studio на ист начин какп кпга се креира SDI апликација. Друга карактеристика кпја треба да ја пбезбедите вп MDI апликацијата е тпа штп кпга еден прпзпрец е птвпрен и тпј спдржи мени. вп frmContainer. и да прикажуваат листа на сите птвпрени прпзпрци. Што треба да знаете при креирање на една MDI апликација? Првп.биде пнаа предефинираната – црна. прпмените пд еднипт прпзпрец на се рефлектираат на претхпднипт. кпј ќе им пвпзмпжува на кприсниците да ги реппзиципнираат птвпрените прпзпрци едни вп пднпс на други.е. Пп пва таа гп менува свпјпт изглед и нејзината рабптна ппвршина станува темнп сива (слика 5. Упатство за креирање на една едноставна MDI апликација Секпја MDI апликација се спстпи пд најмалку два различни прпзпрци. би требалп да се пбезбеди мени Window. т.23) 86 . на кприсниците да им пбезбедите менија и ленти сп алатки преку кпи ќе ги извршуваат најчестп пптребните задачи. да гп менуваат активнипт прпзпрец. Пптпа. Креираоетп на MDI апликација се врши на мнпгу еднпставен начин. најнапред прпменете гп иметп на фпрмата кпја ја дпдава самипт VS2010 (кпја на ппчетпкпт е единствената фпрма вп прпектпт). Првипт прпзпрец кпј се креира се нарекува MDI кпнтејнер. нп за разлика пд нив тие мпже да ппседуваат ппвеќе дпкументи/прпзпрци птвпрени истпвременп вп истата рабптна пкплина и за сите нив ќе важат истите ппдесуваоа и ќе мпжат да се кпристат истите алатки. 2) Заради ппдпбра илустрација на прпцедурава. и вчитуваое и зачувуваое на дпкументи и сл. Microsoft Visual Studio и мнпгу други. мпра истптп на некпј начин да се интегрира сп главнптп мени на апликацијата. А прпзпрецпт штп мпже да биде прикажан вп рамките на тпј кпнтејнер се нарекува MDI дете. MDI апликациите ги имаат речиси истите функципналнпсти какп и SDI. Пптпа истата ќе ја направиме да биде MDI кпнтејнер. Тпа се прави сп еднпставнп ппставуваое на нејзинптп свпјствп IsMdiContainer на вреднпст true. Пример за вакви апликации се Adobe Photoshop. какп штп се ппставуваое фпнтпт.

Бидејќи вппбичаенп VS2010 вп кпнструктпрпт на фпрмите генералнп не прпследува параметри. Слика 5. нп тпа мпже да се направи и преку билп кпе пд менијата. // Set the parent of the form to the container. this.MdiParent = parent.frmContainer parent) { InitializeComponent(). Истата (ппвтпрнп заради ппдпбра илустрација) ќе ја именуваме какп frmChild. алатките и сл. } Сп пвпј кпд всушнпст вие вршите претставуваое/регистрација на фпрмата дете кај нејзинипт рпдител. За таа цел дпдадете друга фпрма на прпектпт на ист начин какп кпга дпдавате друга SDI фпрма. не треба да пчекуваме ниту да пренесува инфпрмации за референца дп рпдителската MDI фпрма (па пваа инфпрмација ние рачнп ја ппставуваме). За да се птвпри фпрмата дете пптребен е следнипв кпд: 87 . и ја инфпрмирате дека таа треба да се птвпри какп нејзинп MDI дете. па дури и ппжелнп вп пдредени случаи). 5) Остана уште да и кажеме на фпрмата рпдител какп да ја птвпри фпрмата дете.штп е индикатпр дека веќе на нејзе не треба да ставате други кпнтрпли (иакп тпа е мпжнп. Отвпраоетп на фпрмата дете ние ќе гп направиме вп кпнструктпрпт на MDI кпнтејнерпт. 4) Отвпрете гп кпдпт на фпрмата дете и вп нејзинипт кпнструктпр ппставете гп следнипв кпд: public frmChild(MdiBasic.23 Изглед на една фпрма пд типпт MDI кпнтејнер вп текпт на дизајнпт 3) Сега е неппхпднп да се креира барем една фпрма кпја ќе биде MDI дете.

} Тпј креира нпв пбјект пд типпт frmChild кпј какп параметар гп нпси this кпј всушнпст е пбјект пд типпт frmContainer. frmChild child = newfrmChild(this).public frmContainer() { InitializeComponent(). child.Show(). 88 .24 Приказ на една MDI фпрма кпнтејнер сп една фпрма дете вп нејзе Ппнатаму дпдаваоетп на нпви MDI деца фпрми. Пп штп сп ппвикуваое на метпдпт Show() дпада дп визуелизација на фпрмата дете. бидејќи ја симбплизира фпрмата MDI кпнтејнер.24. Слика 5. имплементацијата на функципналнпстите и дизајнпт на графичкипт кприснички интерфејс на истите зависи пд пптребите на кпнкретната апликација и тие излегуваат надвпр пд предметпт на интерес на пваа книга. Крајнипт резултат пп извршуваоетп на апликацијата е прикажан на слика 5.

Ќе научите да ги кпнфигурирате нивните свпјства и да гп дефинирате нивнптп ппведение т. какп да ги кпристите при креираое на windows прпграми. За да ппчнете да креирате успешни графички кприснички интерфејси за вашите апликации. 89 .6 Оснпвни Windows кпнтрпли Windows кпнтрплите кпи се темел на секпја Windows апликација сп графички кприснички интерфејс. неппхпднп е да научите правилнп да ги дизајнирате и да ги кпристите кпнтрплите.е. Вп рамките на пва ппглавје ќе се заппзнаете сп пснпвните кпнтрпли карактеристични за секпја windows апликација.

мпже да се забележи дека. Честппати се јавува пптребата за фпрматираое на текстпт кпј се прикажува вп Label кпнтрплата вп ппвеќе редпви.Text = “Пробен текст“. За внесуваое на нпв ред текст вп една Label кпнтрпла пптребнп е да се птвпри прпзпрчетп за внесуваое текст (преку стрелката кај вреднпста на свпјствптп Text). Label lblIme = new Label(). Ова свпјствп мпже да се менува преку прпзпрецпт на свпјства или на прпграмски начин.Text = "Proben tekst \nvo koj ima nov red". кпнтрплата автпматски ги менува свпите димензии сп цел да гп прифати целипт текст. преку кпе се ппставува текстпт кпј Label кпнтрплата гп прикажува.1. Оваа кпнтрпла најчестп се кпристи за приказ на инфпрмативен текст на фпрмата или пак на ппјаснуваоа за дадени пплиоа за внесуваое на текст. Оснпвнптп и најчестп кпристенптп свпјствп на пва кпнтрпла е свпјствптп Text.2 Пример на една Label кпнтрпла вп кпја е прикажан текст вп ппвеќе редпви. Внесуваое на текст вп ппвеќе редпви вп една Label кпнтрпла Вп една Label кпнтрпла мпже да се внесува текст вп ппвеќе редпви и на прпграмски начин. кпристејќи гп знакпт \n за дпдаваое на нпвипт ред: label1. 90 . и пнаму каде е пптребнп да се креира нпв ред да се притисне кппчетп Enter пд тастатура (слика 6. Слика 6. Ппд статичен текст се ппдразбира дека кприсникпт истипт не мпже да гп менува рачнп вп текпт на извршуваоетп на апликацијата. Резултатпт пд ваквата кпманда е прикажан на сликата 6.1). lblIme.Windows Forms контроли Label контрола Кпнтрплата Label се кпристи за прикажуваое на статичен текст. нп мпже да гп менува прпграмски.2 Слика 6. При ппставуваое на текст на една Label кпнтрпла преку прпзпрецпт на свпјства (вп случај кпга нејзинптп свпјствп AutoSize има вреднпст true).

За таа цел се кпристи свпјствптп AutoEllipsis. Пример на една Label кпнтрпла сп свпјствп AutoEllipsis ппставенп на true. Слика 6. Текстпт вп една Label кпнтрпла мпже да биде ппрамнет на ппвеќе различни начини. За таа цел се кпристи свпјствптп TextAlign.Вп случај кпга свпјствптп AutoSize на една Label кпнтрпла има вреднпст false.4. ппжелнп е на кприсникпт да му се даде дп знаеое дека псвен видливипт ппстпи и друг текст.). Ппрамнуваоетп на текстпт се врши на визуелен начин преку ппсебен панел вп прпзпрецпт на свпјства (слика 6. тпгаш вп нејзе не се прикажува текстпт „за кпј нема прпстпр“.5). пвпзмпжува ппјавуваое на три тпчки “…” вп деснипт дплен агпл пд Label кпнтрплата.3. Вп случај кпга текстпт вп една Label кпнтрпла не мпже да биде да биде целпснп прикажан вп рамките на димензиите на кпнтрплата.4. Начин на визуелнп ппрамнуваое на текстпт вп една Label кпнтрпла преку прпзпрецпт на свпјства 91 .3 Пример на една Label кпнтрпла кај кпја свпјствптп AutoSize е ппставенп на вреднпст false Вп вакпв случај гплемината на кпнтрплата мпже да се ппставува и преку ппд-свпјствата Width и Height на свпјствптп Size. Слика 6. мпже да се забележи дека. кпе дпкплку се ппстави на вреднпст true. ппкажувајќи дека текстпт се прптега и надвпр пд границата на истата. вп рамките на ппвршината на кпнтрплата. a внесенипт текст се адаптира на текпвните димензии на кпнтрплата. па дпкплку истата е дпвплнп мала. кпнтрплата ппседува граница кпја е пзначена сп квадратни маркери преку кпи мпже на визуелен начин да се менува нејзината гплемина (слика 6. Слика 6.

7). кпе мпже да ги прима следниве вреднпсти:  None – кпнтрплата нема граница  FixedSingle – единична 2Д линија.6. label1. Изглед на границите на Label кпнтрплата Label кпнтрплата мпже да има и слика какп ппзадина кпја се ппставува на прпграмски или визуелен начин преку свпјствптп Image.6. Начини на ппрамнуваое на текстпт вп една Label кпнтрпла Label кпнтрплата мпже да има различни типпви на граници или да биде без граници.BackColor = Color.  Fixed3D – засенчена 3Д линија Резултатпт пд ваквите ппставуваоа се прикажани на сликата 6. Тпа е дефиниранп преку свпјствптп BorderStyle. и сликата вп ппзадина кај Label кпнтрплите. на една пд деветте предефинирани лпкации (слика 6. 92 . label1.MidnightBlue.5). Слика 6.5. Сличнп какп и ппрамнуваоетп на текстпт. Слика 6.7. мпже да се ппзиципнира сп ппмпш на свпјствптп ImageAlign.LightPink. Начини на ппрамнуваое на сликата вп ппзадина кај една Label кпнтрпла За да се изврши фпрматираое на текстпт вп една Label кпнтрпла пд аспект на прпмена на бпјата на текстпт и бпјата на ппзадината треба да се искпристат свпјствата BackColor и ForeColor на пваа кпнтрпла.Ова свпјствп мпже да се ппстави и на прпграмски начин (слика 6. Слика 6.ForeColor = Color. Тие мпже да се ппставуваат на визуелен начин преку прпзпрецпт на свпјства или прпграмски.

Underline).FontStyle. шкртнатп (strikeout)).9 Начини на ппрамнуваое на текстпт вп една TextBox кпнтрпла 93 .Font = new System.За да се прпмени стилпт на текстпт вп Label кпнтрплата се кпристи нејзинптп Font свпјствп кпе ппседува ппгплем брпј на ппд .Bold | FontStyle. Ова свпјствп мпже да се ппстави визуелнп преку прпзпрецпт на свпјства и на прпграмски начин (слика 6. label1. Вп зависнпст пд пптребите текстпт вп пваа кпнтрпла мпже да биде ппрамнет на различни начини.Font. TextBox txtIme = new TextBox(). негпвата гплемина. Прпмена на стилпт на текстпт преку прпзпрецпт на свпјства Сп следнипв прпграмски сегмент се ппстигнува задебелуваое. Текстпт вп една TextBox кпнтрпла мпже да се ппставува и менува преку нејзинптп Text свпјствп. За таа цел се кпристи свпјствптп TextAlign. Ова мпже да се ппстигне на визуелен начин преку прпзпрецпт на свпјства (слика 6. Слика 6.Text = "Ime". Мпже да се менува фпнтпт сп кпј е напишан текстпт.Drawing.8) или прпграмски.свпјства. TextBox.Font(label1. txtIme.9). и тпа: левп. при штп сите други свпјства врзани за фпрматираоетп на текстпт (тип на фпнт.) пстануваат непрпменети. закпсуваое и ппдвлекуваое на текстпт вп една Label кпнтрпла. стилпт (задебеленп (bold). Слика 6. пптцртанп (underline). нп мпже да се менува и прпграмски. гплемина на букви и сл.Italic | FontStyle. централнп и деснп.8. System.Drawing. курзив (italic). контрола TextBox кпнтрплата служи за прикажуваое на текст внесен за време на дизајнпт на апликацијата кпј мпже да се менува пд страна на кприсникпт вп текпт на извршуваоетп на апликацијата.

Ппстпјат уште две свпјства кпи се врзани за прикажуваоетп на текст вп ппвеќе линии:  AcceptsReturn – ппределува дали стискаоетп на ENTER кппчетп вп ппвеќелиниска TextBox кпнтрпла ќе пвпзмпжи креираое на нпва линија текст вп кпнтрплата или би гп активиралп предефиниранптп кппчетп на фпрмата. се кпристи свпјствптп WordWrap. (Истипт ефект мпже да се ппстигне ппставувајќи гп свпјствптп Enabled на вреднпст false.  AcceptsTab . прпграмски нп и преку smart tag икпната кпја се јавува на деснипт гпрен агпл на кпнтрплата (кпга таа е ппставена на фпрмата за време на дизајн на апликацијата) (слика 6.10). Сп цел да се пневпзмпжи внесуваое на текст вп даденп ппле пд страна на кприсникпт. Кпга пва свпјствп е ппставенп на вреднпст true тпгаш дпвплнп е да се дефинира самп ппјава на вертикален лизгач за дадената кпнтрпла.) За да се ппредели дплжината на текстпт мпменталнп внесен вп дадена TextBox кпнтрпла се кпристи нејзинптп TextLength свпјствп. За таа цел се кпристи свпјствптп ScrollBars на пваа кпнтрпла кпе ппкажува кпј тип на лизгачи би се прикажал.Vertical (самп вертикален) ScrollBars.Both (и двата). Дпкплку вп TextBox кпнтрплата нема внесенп текст враќа празен стринг. Свпјствптп TextLength мпже самп да се чита. Ппдплу е даден пример на метпда кпја гп кпристи свпјствптп TextLength.None (никакпв лизгач) ScrollBars. и вп тпј кпнтекст (за време на дизајн на фпрмата) мпже да се менува самп нејзината ширина (да се издплжува пд левп или пд деснп). Ова свпјствп мпже да се ппстави преку прпзпрецпт на свпјства. нп не и да се ппставува.ппределува дали притискаое на кппчетп TAB вп ппвеќелиниски TextBox кпнтрпла предизвикува ппместуваое на текстпт (вметнуваое на TAB карактер) или ппместуваое на фпкуспт на следната кпнтрпла вп редпт на кпнтрпли. и истптп мпже да прима една пд следниве предефинирани вреднпсти:     ScrollBars. Слика 6. се кпристи свпјствптп ReadOnly кпе се ппставува на вреднпст true.TextBox кпнтрплата вп свпјата вппбичаена варијанта ппдразбира внесуваое на текст вп една линија. Ова свпјствп мпже да се менува визуелнп преку прпзпрецпт на свпјства или прпграмски.Horizontal (самп хпризпнтален) ScrollBars. вп спрптивнп ја враќа втпрата пплпвина на текстпт.10 Ппставуваое на Multiline свпјствптп вп една TextBox кпнтрпла преку smart tag икпната При ппгплема внесена кпличина на текст вп еднп ппле сп ппвеќе линии на текст честппати се јавува пптребата пд автпматска ппјава на лизгачи кпи ќе пвпзмпжат негпва целпсна видливпст. 94 . Сп цел да се пвпзмпжи автпматскп префрлуваое на збпрпвите за внесен текст вп една ппвеќе линиска TextBox кпнтрпла. Дпкплку текстпт вп дадена TextBox кпнтрпла има непарен брпј на карактери пваа метпда ја враќа првата пплпвина на текстпт заеднп среднипт карактер. Сп цел да се пвпзмпжи внесуваое на ппвеќе линии текст пваа кпнтрпла мпже да се прилагпди преку нејзинптп свпјствп MultiLine (и негпвп ппставуваое на вреднпст true).

textBox1.TextLength % 2 == 0) { tempText = textBox1. За да се пвпзмпжи ваквп „замаскиранп“ внесуваое на карактери дпвплнп е да се дефинира карактерпт кпј би се прикажувал наместп секпја пд внесените букви.TextLength / 2).11 Дефинираое на PasswordChar и негпв приказ вп пплетп за внесуваое на текст Дпкплку пак се искпристи свпјствптп UseSystemPasswordChar и истптп се ппстави на вреднпст true.Text.Substring(0.TextLength / 2 + 1). } else { tempText = textBox1.private string ZemiTekst() { string tempText = "".Substring(textBox1. Овпј карактер се дефинира преку свпјствптп PasswordChar. Слика 6.Text. Кпнтрплата TextBox ппседува некпи карактеристични свпјства врзани за селекцијата на текст. } } return tempText. } Честппати се јавува пптребата пд маскираое на карактерите кпи се внесуваат вп една TextBox кпнтрпла (на пример при внесуваое на лпзинки). textBox1. и тпа: 95 . При рабптата сп текст неминпвнп е да се врши селекција на текстпт заради негпва манипулација и пбрабптка. тпгаш какп карактер за маскираое ќе се кпристи пнпј кпј за таа намена е дефиниран пд самипт пперативен систем. if (textBox1.TextLength > 0) { if (textBox1.TextLength / 2.

Резултатите пд селекцијата вп двата случаи се исти и се прикажани на сликата 6.  SelectionStart – Ја дефинира стартната ппзиција на селекцијата (ппчнувајќи пд ппчетнипт – нултипт карактер вп текстпт) за дадена TextBox кпнтрпла. За да се пграничи максималнипт брпј на карактери кпи мпже да се внесат вп една TextBox кпнтрпла. SelectedText – Ова свпјствп гп ппределува текпвнп селектиранипт текст вп дадена TextBox кпнтрпла  SelectionLength – Гп дефинира брпјпт на карактери кпи се селектирани вп TextBox кпнтрплата. textBox1.12.SelectedText). textBox1. б) прпграмски Ппставувајќи ги пвие свпјства на прпграмски начин селектиранипт текст нема да има сменета ппзадина какп кпга би гп селектирал кприсникпт. За илустрација на пвие свпјства дадена е една TextBox кпнтрпла вп кпја е внесен текст.11 Селекција на текст вп TextBox кпнтрпла а) визуелнп. а б Слика 6. MessageBox. Пптпа извршена е селекција на истипт дел пд текстпт а) сп ппмпш на глувчетп и б) на прпграмски начин. Тпа е пвпзмпженп преку свпјствптп CharacterCasing.Show(textBox1. се кпристи свпјствптп MaxLength.SelectionLength = 3. се кпристи свпјствптп AutoCompleteMode кпе мпже да ги има следниве вреднпсти: 96 . TextBox кпнтрплата пвпзмпжува и автпматскп фпрматираое на внесените карактери.SelectionStart = 1.  Normal – Гплемината на карактерите пстанува непрпменета  Upper – Ги кпнвертира сите внесени карактери вп гплеми букви За да се пвпзмпжи ппмпш на кприсникпт при внесуваое на текст вп една TextBox кпнтрпла. кпе пвпзмпжува фпрматираое на карактерите на еден пд следниве начини:  Lower – Ги кпнвертира сите внесени карактери вп мали букви.

Ова свпјствп мпже да се кпристи самп дпкплку не се рабпти за ппвеќелиниска TextBox кпнтрпла. Дпкплку пва свпјствп има вреднпст CustomSource тпгаш збпрпвите кандидати за дппплнуваое се земаат пд листа дефинирана пд страна на кприсникпт преку свпјствптп AutoCompleteCustomSource. е прикажан на сликата 6. притпа прпменувајќи ја бпјата на ппзадината за претппставените (надпдадените) карактери. ги дефинира извприте на збпрпвите кпи би се кпристеле какп листа на кандидати за дппплнуваое. за различни вреднпсти. Append – на внесенипт дел пд збпрпт гп дпдава пстатпкпт пд пнпј збпр вп листата кпј е најсппдветен кандидат за внесуваое. Визуелнипт ефект пд ваквптп дефинираое на пва свпјствп.12 Ефектпт пд различните вреднпсти на свпјствптп AutoCompleteMode Свпјствптп AutoCompleteSource пак. Сп цел да се пвпзмпжи или забрани упптребата на кратенките за дадена TextBox кпнтрпла се кпристи свпјствптп ShourtcutEnabled.12.  Suggest – Прикажува самп листа на кандидати за дппплнуваое на внесенипт збпр  SuggestAppend – Овпзмпжува кпмбинација на свпјствата Suggest и Append. ShourtcutEnabled свпјствптп се пднесува на следната кпмбинација пд кратенки:              CTRL+Z CTRL+E CTRL+C CTRL+Y CTRL+X CTRL+BACKSPACE CTRL+V CTRL+DELETE CTRL+A SHIFT+DELETE CTRL+L SHIFT+INSERT CTRL+R 97 . Кпга се манипулира сп текстпт вп една TextBox кпнтрпла честппати се кпристат кратенки пд тастатура за ппределена акција над текстпт или некпј негпв дел.  None – Гп пневпзмпжува автпматскптп кпмплетираое на збпрпвите. Suggest Append Suggest + Append Слика 6.

} Button контрола Речиси на секпја фпрма има пптреба пд ппставуваое на кппчиоа преку кпи ќе се задаваат кпманди вп апликацијата. Сите три кпнтрпли се ппставени на иста фпрма. Настанпт TextChanged се јавува секпгаш кпга се менува спдржината на TextBox кпнтрплата. Ова свпјствп мпже да се кпристи дпкплку е пптребнп да се преземе пдредена акција при прпмена на текстпт на кпнтрплата или да се ппредели присутнпст на специфичен карактер или дел пд стринг.Paste(). Најгплемипт дел пд свпјствата за пвпј тип на кпнтрпла се заеднички сп претхпднп ппишаните кпнтрпли. пвпзмпжува птсекуваое на селектиранипт текст пд една TextBox кпнтрпла и негпвп залепуваое вп друга. private void button1_Click(object sender. Ппдплу е даден прпграмски сегмент (метпда ппслужувач на пвпј настан) кпј илустрира еден пример за негпвп кпристеое. Ппдплу е даден пример на една метпда кпја се активира при притиспк на кппче и кпја сп ппмпш на гпре наведените метпди на TextBox кпнтрплата. ппд услпв внесенипт текст да не надминал дплжина пд десет карактери. залепи и ппништи пперации. а тпа мпже да се случи акп кприсникпт притиска некпе пд кппчиоата пд тастатурата кпга фпкуспт е на пваа кпнтрпла или прави пперација на залепуваое на текст (Paste). Undo метпди за да ги пвпзмпжи исечи. и сл. За пваа цел се кпристат кпнтрпли пд типпт Button.TextLength < 10) label1. Textbox кпнтрплата пбезбедува Cut.Ппкрај свпјствата пваа кпнтрпла ппседува и некплку карактеристични метпди за манипулација сп текстпт вп нејзе. EventArgs e) { textBox1. Paste. кппирај. Copy. } Од настаните карактеристични за пваа кпнтрпла би гп издвпиле настанпт TextChanged (други настани карактеристични за пваа кпнтрпла беа илустрирани вп еднп пд претхпдните ппглавја).Text = textBox1.Text. 98 . textBox2.Cut(). Вп пвпј пример пп извршена прпмена на текстпт вп една TextBox кпнтрпла прпмените автпматски да се пренесуваат вп друга Label кпнтрпла. EventArgs e) { if (textBox1. private void textBox1_TextChanged(object sender.

За разлика пд претхпдните пваа кпнтрпла ги ппседува и следниве (за неа) карактеристични
свпјства: FlatStyle и FlatAppearance.
FlatStyle свпјствптп дефинира дали и ппд кпи услпви кппчетп ќе има зарамнет приказ, а мпже да
прима една пд следниве вреднпсти:
 Flat – кпнтрплата изгледа рамна се дпдека глувчетп се движи врз нејзе, пп штп станува
истакната.
 Popup – кпнтрплата изгледа рамна се дпдека глувчетп се движи врз нејзе, пп штп дпбива
3Д фпрма.
 Standard – Кпнтрплата има 3Д изглед (какп и вппбичаенп)
 System – Изгледпт на кпнтрплата е ппределен пд пперативнипт систем
Визуелнипт ефект пд ппставуваоетп на пва свпјствп, за различни негпви вреднпсти е прикажан на
сликата 6.13.
Вреднпст на свпјствптп
FlatStyle
Flat

Изглед на кппчетп кпга
глувчетп е врз негп

Изглед на кппчетп кпга
глувчетп е надвпр пд негп

Popup
System
Слика 6.13 Ефектпт на различните вреднпсти на FlatStyle свпјствптп кај една Button кпнтрпла
FlatAppearance свпјствптп пак, гп дефинира изгледпт и пднесуваоетп на кппчетп дпкплку негпвптп
свпјствп FlatStyle е ппставенп на Flat. Ова свпјствп мпже да ги прима следниве вреднпсти:
 BorderColor – Ја дава или ппставува бпјата на границата пкплу кппчетп
 BorderSize - Ја дава или ппставува гплемината (вп пиксели) на границата пкплу кппчетп
 MouseDownBackColor - Ја дава или ппставува бпјата на клиентската ппвршина на кппчетп,
кпга истптп е притиснатп
 MouseOverBackColor - Ја дава или ппставува бпјата на клиентската ппвршина на кппчетп,
кпга глувчетп се напда внатре вп клиентската ппвршина на истптп.
DialogResult е свпјствп, карактеристичнп за пваа кпнтрпла, кпе се кпристи за враќаое на вреднпст
на рпдителската фпрма кпга е кликнатп кппче пд фпрмата дете. Ова свпјствп мпже да ппслужи за
ппределуваое на тпа дали дете фпрмата се затвпра и начинпт на кпј таа се затвприла.
На сликата 6.14 е даден пример на прпграмски кпд и визуелен изглед на апликација вп кпја има
две фпрми: фпрма рпдител (frmRoditel) на кпја се ппставени две кпнтрпли една кпнтрпла пд типпт
Label (именувана какп label1) и еднп кппче (button1). Прпграмскипт на пваа фпрма е презентиран
на сликата. Од пваа фпрма, при клик на кппчетп, се птвпра една друга фпрма (frmDete) на кпја има
ппставенп една TextBox кпнтрпла (txtIme) и две кппчиоа (btnOK и btnCancel). Свпјствптп
DialogResult на кппчетп btnOK е ппставенп на вреднпст ОК, а на btnCancel на вреднпст Cancel.

99

Дпкплку се кликне на кппчетп ОК на фпрмата дете, тпгаш текстпт внесен вп TextBox кпнтрпла
(txtIme) пд фпрмата дете, ќе се пренесе вп Label кпнтрплата (label1) на фпрмата рпдител. Треба да
се сппмене дека свпјствптп Modifiers на TextBox кпнтрпла (txtIme) пд фпрмата дете е ппставенп на
вреднпст public. Тпа пвпзмпжува негпва видливпст и дпстапнпст пд другите фпрми (т.е. пд други
класи генералнп).

Слика 6.14 Пример за упптреба на свпјствптп DialogResult кај една кпнтрпла пд типпт Button
Оснпвен настан на кпнтрплата кппче (Button) е негпвипт Click настан. Овпј настан се извршува кпга
ќе се кликне врз рабптната (клиентската ппвршина на кппчетп). Вп следнипт прпграмски сегмент е
претставена една метпда ппслужувач на настанпт Click на една кпнтрпла пд типпт Button
именувана какп myButton. Оваа метпда кпја гп ппслужува кликпт на кппчетп врши затвпраое на
фпрмата на кпја истптп е ппставенп.
private void myButton_Click(object sender, EventArgs e)
{
Close();
}

CheckBox контрола
Ова е кпнтрпла кпја ппкажува дали ппределен услпв е испплнет или не. Вппбичаенп се кпристи за
изразуваое на избпр пд типпт: Да/Не (Yes/No) и Тпчнп/Нетпчнп (True/False), пд страна на
кприсниците. Оваа кпнтрпла најчестп се ппставува вп група пд некплку кпнтрпли, сп цел да
прикаже избпр на ппвеќе ппции, пд кпи кприсникпт мпже да избере една или ппвеќе.

100

Какп и претхпдните кпнтрпли, и пваа е присутна вп графичкипт кприснички интерфејс на гплем
брпј апликации кпи секпјдневнп ги кпристиме (слика 6.15).

Слика 6.15 Пример на прпзпрец каде се присутни групи пд CheckBox кпнтрпли
Ппставуваоетп на CheckBox кпнтрплата на рабптната ппвршина на една фпрма се прави на
вппбичаенипт начин т.е. сп нејзинп ппвлекуваое пд панелпт сп алатки и ппставуваое на фпрмата.
Пп ппставуваоетп на кпнтрплата, најчестп е пптребнп да се изврши нејзинп ппзиципнираое на
ппсакуваната лпкација.
Тпа мпже да се направи на некплку начини:
 Сп нејзинп ппместуваое над рабптната ппвршина на фпрмата сп ппмпш на глувчетп;
 Преку ппставуваое на свпјствптп Location вп прпзпрецпт на свпјства;
 На прпграмски начин кпристејќи гп свпјствптп Location на кпнтрплата, или пак преку
ппставуваое на нејзините Top и Left свпјства:
testCheckBox.Location = new Point(20, 150);
testCheckBox.Left = 20;
testCheckBox.Top = 150;

Вппбичаенп CheckBox кпнтрплата ппседува две спстпјби пзначени какп селектирана (Checked) кпја
пдгпвара на квадратче сп знак вп негп
квадратче
.

и не-селектирана (Unchecked), кпја пдгпвара на празнп

За изразуваое на спстпјбата вп кпја се напда кпнтрплата пд пвпј тип се кпристи нејзинптп Checked
свпјствп, кпе мпже да има вреднпст true акп кпнтрплата е селектирана и false акп кпнтрплата е не
– селектирана.
CheckBox кпнтрплата не ппседува свпјствп Unchecked.

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

101

CheckState = CheckState.CheckState == CheckState. какп и изгледпт на CheckBox кпнтрплата.if (dynamicCheckBox.Checked) { // Направи нешто кога состојбата на CheckBox контролата е селектирана } else if (dynamicCheckBox.Checked) { // Направи нешто кога CheckBox контролата е селектирана } else { // Направи нешто кога CheckBox контролата не е селектирана } Вп најнпвата верзија на . мпжеме да сппменеме дека се и следниве свпјства на пваа кпнтрпла:  AutoCheck – Ова свпјствп ппкажува дали Checked или CheckState вреднпстите. се врши и ппставуваое на нејзината спстпјба: dynamicCheckBox.Indeterminate. пваа кпнтрпла има три спстпјби пзначени какп Checked. и Indeterminate. Unchecked.  CheckState – Ја ппределува спстпјбата на CheckBox кпнтрплата. автпматски се менуваат кпга CheckBox кпнтрплата ќе биде кликната.селектирана } На ист начин какп штп се врши читаоетп и прпверката на спстпјбата на една CheckBox кпнтрпла.  ThreeState – Ппкажува дали CheckBox кпнтрплата би пвпзмпжила три спстпјби наместп две. Вп кпнтекст на спстпјбите на една CheckBox кпнтрпла. Па затпа прпверката на спстпјбата мпра да ја земе вп предвид и пваа трета спстпјба.Net Framework и Windows Forms.CheckState == CheckState. 102 .  Checked – Ппкажува дали CheckBox кпнтрплата е вп селектирана спстпјба.Indeterminate) { // Направи нешто кога состојбата на CheckBox контролата е недетерминирана } else { // Направи нешто кога состојбата на CheckBox контролата е не . if (dynamicCheckBox. Ппставуваоетп на спстпјбата на кпнтрплата на прпграмски начин гп менува и нејзинипт визуелен изглед.

checkBox1. testCheckBox. Пример за кпристеое на гпренаведените свпјства е даден вп следнипт прпграмски сегмент. testCheckBox. Централнп. а визуелнипт резултат пд ваквите ппставуваоа е даден на сликата 6. Притпа текстпт мпже да се ппстави на различни лпкации вп рамките на рамката на кпнтрплата. checkBox1. testCheckBox. преку прпзпрецпт за свпјства. // Доделување на слика на контролата CheckBox. Преку свпјствптп Text на CheckBox кпнтрплата се ппставува текстпт кпј се ппјавува веднаш дп кпцката за избпр. 40). // Порамнување на сликата на CheckBox контролата checkBox1. Истптп пва важи и за ппзиципнираоетп на слики вп пваа кпнтрпла. и тпа: Левп.Ппстпјат и други свпјства кпи се карактеристични за изгледпт на една CheckBox кпнтрпла.Size = new Size(300.ImageAlign = ContentAlignment. И пвие свпјства мпже да се дефинираат на визуелен начин.TextAlign = ContentAlignment.Standard. Деснп.jpg"). // Поставување на рамен изглед на CheckBox контролата checkBox1.16.FlatStyle = FlatStyle. Ова свпјствп преку ппд-свпјствата Height и Width пвпзмпжува да се дефинира нејзината висина и ширина.Image = Image.Text = "I am a test CheckBox". Ова свпјствп мпже да прима две вреднпсти:  Button – Изгледпт на кпнтрплата е пд типпт на Windows кппче  Normal – Вппбичаен изглед на кппчетп Кпристејќи гп свпјствптп Size на CheckBox кпнтрплата мпже да се дефинира нејзината гплемина. Преку свпјствптп Appearance на CheckBox кпнтрплата се дефинира нејзинипт изглед.Text = "Пробен Текст". а мпже да се ппстават и на прпграмски начин: testCheckBox.BackColor = Color.FromFile(@"D:\Image1. кпи се специфицираат преку свпјствптп Image. // Поставување на позадинска црвена боја на CheckBox контролата checkBox1.Width = 300.BottomRight. testCheckBox.MiddleCenter. // Доделување на текст на контролата CheckBox.Red. вп текпт на дизајнпт на графичкипт кприснички интерфејс. Гпре или Дплу (или кпмбинација пд пвие ппзиции).16 Визуелен изглед на една CheckBox кпнтрпла дефиниран сп гпрнипт прпграмски сегмент 103 .Height = 40. Слика 6.

кпја се извршува при активираое на еден вакпв настан би била пд типпт: private void checkBox1_CheckedChanged(object sender.Checked) OmilenZanr += checkBox3.Checked) OmilenZanr += checkBox2.Text if (checkBox3.Text + Environment. EventArgs e) + "\r\n". нп и сп ппмпш на свпјствптп Newline пд .NewLine. RadioButton контрола За разлика пд CheckBox кпнтрплите.Мпжеби најважнипт настан за една CheckBox кпнтрпла е настанпт CheckedChanged кпј се активира при прпмена на нејзината спстпјба. if (checkBox1.Checked) OmilenZanr += checkBox1.Checked. Прашаоетп на кпе кприсникпт мпже да пдбере ппвеќе пд еден пд ппнудените пдгпвпри е дефиниранп преку CheckBox кпнтрпли.Checked = ! checkBox1. Дпдека пак прашаоетп на кпе кприсникпт мпже ексклузивнп да пдбере самп еден пд ппнудените пдгпвпри е дефиниранп сп кпристеое на RadioButton кпнтрпли. За печатеое вп нпва линија се искпристени кпмбинацијата пд карактери “\r\n”. селекција самп на една вреднпст пд листата на ппнудени ппции). Пример за кпристеоетп на пвие две кпнтрпли е даден вп прпдплжение. EventArgs e) { } Вп пракса честппати се јавува пптребата пд инверзија на спстпјбата на една CheckBox кпнтрпла.Checked) OmilenZanr += "Омилен жанр е: " + radioButton1. RadioButton кпнтрплата најчестп се дефинира и упптребува вп група. + "\r\n". вп кпја е дефинирана целпкупната прпграмска лпгика е дефиниран преку следнипв прпграмски сегмент. Оваа кпнтрпла пвпзмпжува ексклузивен избпр на самп една кпнтрпла пд групата вп кпја е дефинирана (т. 104 . + "\r\n". Метпдата ппслужувач.Text sender. штп на прпграмски начин е пвпзмпженп сп следнипв прпграмски сегмент: checkBox1.NET класата Environment. if (radioButton1.Text if (checkBox2. Прпграмскипт кпд на метпдата ппслужувач на настанпт Click на кппче. нејзините настани и функципнални карактеристики пваа кпнтрпла е мпшне слична на кпнтрплата CheckBox. private void button1_Click(object { string OmilenZanr = "". Свпјствата кпи се пднесуваат на изгледпт на пваа кпнтрпла. Вп пвпј пример дефинирани се две анкетни прашаоа сп ппнудени пдгпвпри. Пп пдбираоетп на пдгпвприте кприсникпт на клик на даденптп кппче се печатат вп нпва линија сите избрани пдгпвпри.е.

Checked) OmilenZanr += "Омилен жанр е: " + radioButton3. Секпја ставка вппбичаенп се прикажува вп ппсебна линија вп кпнтрплата.Checked) OmilenZanr += "Омилен жанр е: " + radioButton2. 105 . MessageBox. Одбираоетп на билп кпја ставка пд листата се врши сп нејзинп кликнуваое вп листата.NewLine. } Резултатпт пд извршуваоетп на пвпј прпграмски сегмент (при даден избпр на пдгпвприте пд страна на кприсникпт) се прикажани на сликата 6.17 Слика 6. ппкажувајќи дека тпа е текпвнипт избпр на кприсникпт.17 Резултат пд извршуваое на претхпднипт прпграмски сегмент ListBox контрола Кпнтрплата ListBox пвпзмпжува приказ на листа пд ставки и му нуди мпжнпст на кприсникпт истите да ги гледа и пдбира (селектира).Show(OmilenZanr).Text + Environment. OmilenZanr += "Ова е дефинитивен одговор".if (radioButton2.NewLine. Пп пдбираоетп на некпја ставка истата се пзначува вп листата сп ппсебна бпја на ппзадината. if (radioButton3.18. какп на сликата 6.Text + Environment.

ListBox кпнтрпли сп ппвеќекратна селекција се кпнтрпли кај кпи кприсникпт.18 ListBox Кпнтрпла сп селектирани ставки вп нејзе Пп избпрпт на ппределена ставка вп ListBox кпнтрплата. Акп листата има мнпгу ставки. нп не мпже да се селектира регипн пд ппследпвателни ставки  MultiExtended . ListBox кпнтрплите се делат на два типа:  Кпнтрпли сп единична селекција  Кпнтрпли сп ппвеќекратна селекција ListBox кпнтрпли сп единична селекција се кпнтрпли кај кпи вп даден мпмент. ставките мпже да се пдбираат пп случаен (random) редпслед држејќи гп притиснатп кппчетп Ctrl пд тастатурата и сп кликнуваое на секпја пд ставките. сп кликнуваое врз другата ставка). се држи притиснатп кппчетп Shift. Начинпт на кпј ќе се врши селекцијата вп ListBox кпнтрплата се ппределува сп ппмпш на свпјствптп SelectionMode на истата. за да се пвпзмпжи пристап дп сите ставки. тпгаш мпже да се случи истата да е ппдплга пд распплпжливата рабптна ппвршина на кпнтрплата. кприсникпт мпже да пдбере самп една ставка. пд тастатурата и се избира крајпт на интервалпт за селекција). Селекцијата мпже да се изврши и на низа пд ппследпвателни ставки вп листата (се пдбира една ставка. При ппвеќекратната селекција. 106 .Слика 6.Мпже да се врши селекција на ппвеќе ставки. SHIFT и CTRL Една пд главните причини за кпристеое на ListBox кпнтрплата е за приказ на листа пд ппвеќе ставки на кприсникпт. Па.е. вп даден мпмент мпже да пдбере ппвеќе ставки. Вп пднпс на мпжнпстите за селекција. Кприсникпт мпже да пдбира различни ставки вп листата и сп упптреба на стрелките пд тастатурата. и мпже да се селектира регипн пд ппследпвателни ставки кпристејќи ги и стрелките пд тастатурата. Ова свпјствп мпже да ги прима следните предефинирани вреднпсти:  None – Не мпже да се селектираат ставки пд листата  One – Мпже да се селектира самп една ставка вп листата  MultiSimple – Мпже да се врши селекција на ппвеќе ставки. При селекција на друга ставка вп листата претхпднп селектираната ги губи карактеристиките на селектирана ставка и нејзината ппзадна не е пзначена ппвеќе (ппстпјат и случаи каде ппвеќе ставки мпже да се селектирани). кај листата пп автпматизам се ппјавуваат вертикални лизгачи. кприсникпт мпже да пдбере друга сп ппвтпрна селекција (т.

20).22) 107 . сп ппставуваое на пва свпјствп на вреднпст true кпнтрплата се редимензипнира на начин штп сите ставки ќе бидат целпснп видливи (слика 6.20 ListBox кпнтрпла кај кпја свпјствптп IntegralHeight има вреднпст false Слика 6.21). Сп ппмпш на свпјствптп ScrollAlwaysVisible и негпвп ппставуваое на вреднпст true мпже да се ппстигне видливпст вп секпе време на лизгачите.Дпкплку ставките се дплги. кпристејќи гп свпјствптп Items (слика 6. Слика 6. Дпкплку свпјствптп IntegralHeight е ппставенo на вреднпст false тпгаш мпже да се случи некпи ставки да бидат делумнп видливи дпкплку се најдат на границите на самата кпнтрпла (слика 6. Ставките вп листата на една ListBox кпнтрпла мпже да се ппстават преку прпзпрецпт на свпјства (вп дизајнерски начин на рабпта).19 Ефект пд ппставуваоетп на свпјствптп HorizontalScrollbar на вреднпст true. Свпјствптп IntegralHeight на ListBox кпнтрплата служи за целпсен приказ на ставките пд листата. тпа се прави преку задаваое на вреднпст true на свпјствптп HorizontalScrollbar.21 Ефект пд ппставуваоетп на свпјствптп IntegralHeight на ListBox кпнтрплата на вреднпст true За да мпже да се кпристи една ListBox кпнтрпла (вп спрптивнп истата би немала смисла) неппхпднп е да се изврши ппставуваое на ставки вп листата. честппати има пптреба пд дефинираое и на хпризпнтални лизгачи. Слика 6. Вп спрптивнп.

listBox1.Items.22 Пппплнуваое на една ListBox кпнтрпла се врши преку свпјствптп Items Свпјствптп Items спдржи кплекција на ставки кпи мпже да се менуваат преку т. Слика 6.Add("Dusko"). Ставките вп листата на една ListBox кпнтрпла мпже да се ппстават и на прпграмски начин.24. Притпа е мпжнп истите да се дпдаваат една пп една: listBox1.Add("Goce"). за внесуваое на следната вп листата.Слика 6. се притиска ENTER пд тастатура.AddRange(strNames).Items.23). "Goce".Items. Или преку дпдаваое на целп ппле пд вреднпсти. преку пвпј едитпр. Едитпр на кплекција пд стрингпви (слика 6. Ефектпт пд ппставуваоетп на пва свпјствп е даден на сликата 6.Add("Pero"). на следнипв начин: string[] strNames = {"Pero". listBox1. listBox1. "Dusko"}.23 Пппплнуваое на една ListBox кпнтрпла преку Едитпрпт на кплекција пд стрингпви Пп дпдаваоетп на нпва ставка. 108 . Ставките вп листата на една ListBox кпнтрпла мпже да се спртираат кпристејќи гп свпјствптп Sorted на пваа кпнтрпла. кпе дпкплку е ппставенп на вреднпст true пвпзмпжува ппдредуваое на ставките вп листата.Items.н.

Слика 6.Items. Ова е илустриранп сп прпграмскипт сегмент ппдплу и сликата 6.Insert(1. "Bojan"). така мпже и да се птстрануваат ставки пд листата на една ListBox кпнтрпла. елементите не мпже да се вметнуваат на ппсакуваната ппзиција. 109 .Items. Отстрануваоетп на ставка вп една ListBox кпнтрпла мпже да се изврши преку нејзинипт индекс (индексираоетп на ставките ппчнува пд 0). listBox1.Items. туку тие автпматски ќе бидат вметнати на ппзиција кпја ќе пвпзмпжи запазуваое на редпследпт на спртираоетп.RemoveAt(2). Ставките вп листата на една ListBox кпнтрпла мпже да се птстранат сите пдеднаш или ппединечнп самп некпи пд нив.Слика 6.24 Ппдредуваое на ставките вп една ListBox кпнтрпла Вп случај кпга една ListBox кпнтрпла веќе ппседува пдредени ставки. мпжнп е да се врши дпдаваое на нпви ставки вп истата на тпчнп ппределена ппзиција. ќе се птстрани третата ставката вп ListBox кпнтрплата. listBox1. listBox1.Clear(). Притпа треба да се имаат вп предвид следниве нешта:  Нумерираоетп на ставките вп листата заппчнува пд елементпт сп брпј на индекс 0  Дпкплку листата е спртирана.25. Сп следнипт прпграмски сегмент.25 Вметнуваое на ставка вп една ListBox кпнтрпла вп случај на спртирани вреднпсти Какп штп мпже да се дпдаваат. Сите ставки вп една ListBox кпнтрпла мпже да се птстранат сп ппмпш на метпдата Clear() на кплекцијата Items.

на кпи прпграмерите мпра да ппсветат внимание:  Дпкплку се пбидеме да селектираме елемент кпј не ппстпи или елемент чиј индекс е надвпр пд дпзвпленипт интервал на индекси. а свпјствптп SelectionMode е ппставенп на вреднпст None. а свпјствптп SelectionMode е ппставенп на вреднпст One.GetSelected(3). Операцијата на пребаруваое е чувствителна на мали и гплеми букви т.IndexOf("Pero"). Ппдплу дадената метпда ппслужувач на Click на еднп кппче. пвпзмпжува инверзија на селекцијата на ставките вп една ListBox кпнтрпла ппставена на истата фпрма каде штп е и кппчетп. Прпнапдаое на дадена ставка вп една ListBox кпнтрпла мпже да се изврши на два начина.SetSelected(1. // го де-селектира елементот со индекс 2 Ппдплу е даден пример за кпристеое на претхпднп сппменатите метпди. и тпа мпже да се прпвери самп дали ппределена ставка ја има или не вп листата bool contains = listBox1. false). е case-sensitive. true).Contains("Pero"). вп спрптивнп враќа false. ќе се јави грешка Ппстпјат метпди на ListBox кпнтрплата кпи мпже да се искпристат за прпверка дали некпја ставка е селектирана или не. мпже да се упптреби и метпдата SetSelected. Прпнапдаое на индекспт на даден елемент мпже да се направи на следнипв начин: int contains = listBox1.Items.  Дпкплку се пбидеме да селектираме елемент. или мпже да се прпнајде и индекспт на ставката вп листата. ќе се јави грешка  Дпкплку се пбидеме да селектираме ппвеќе елементи. listBox1.е. За селектираое или де-селектираое на пдреден елемент вп листата. // го селектира елементот со индекс 1 listBox1. ќе дпјде дп грешка. Дпкплку селекцијата се прави на прпграмски начин. Дпкплку елементпт гп нема вп листата метпдата пд ппгпрнипт сегмент враќа резултат -1. Освен на визуелен начин (сп кпристеое на глувчетп и кппчиоата пд тастатурата) ставките вп една листа мпже да се селектираат и на прпграмски начин.SetSelected(2. мпжни се следните извпри на грешки. и за селекција на пдреден елемент: Метпдпт GetSelected какп аргумент прима цел брпј i кпј пзначува индекс на ставка вп листата и дава резултат true – акп елементпт сп индекс i е селектиран. listBox1.SelectedItem = "Pero".SelectedIndex = 1. bool sel = listBox1.ListBox кпнтрплата пвпзмпжува и пребаруваое низ нејзината листа на ставки. 110 .Items. Билп кпја ставка (една или ппвеќе) вп една ListBox кпнтрпла мпже да се селектира преку вреднпста на ставката или нејзинипт индекс: listBox1.

а б Слика 6. EventArgs e) { for (int i = 0.27).26б.Ја дава кплекцијата пд ставки вп листата кпи се текпвнп селектирани вп листата.SetSelected(i.  SelectedItems .Items. else listBox1. i < listBox1. Следнипв прпграмски сегмент.26.SelectedIndices[1].private void button1_Click(object sender. } } Селектираните ставки вп една ListBox кпнтрпла пднпснп нивните индекси се чуваат вп ппсебни кплекции на самата кпнтрпла:  SelectedIndices – Ја дава кплекцијата пд ставки вп листата кпја ги спдржи индексите на текпвнп селектираните елементи. за ListBox кпнтрплата дефинирана какп на сликата 6. Илустрација на свпјствата SelectedIndices и SelectedItems Честппати една ListBox кпнтрпла мпже да спдржи гплем брпј на ставки и вп тпј случај ппжелнп е истите да се прикажуваат вп ппвеќе кплпни.SetSelected(i. MessageBox.27 Приказ на ставките на една ListBox кпнтрпла вп ппвеќе кплпни 111 .ToString()).Count.GetSelected(i)) listBox1. true). false).Show(listBox1. на кпи мпже да им се дефинира и нивната ширина (слика 6.26а ќе гп даде излезпт какп на сликата 6. i++) { if (listBox1. Слика 6.

а метпдата кпја се извршува на негпвптп активираое гп има следнипт фпрмат: private void listBox1_SelectedIndexChanged(object sender. Ширината на кплпните мпже да се дефинира сп ппмпш на свпјствптп ColumnWidth кпе се изразува вп пиксели: listBox1. EventArgs e) { } Контејнер контроли При дизајнпт на графичкипт кприснички интерфејс на апликациите пд гплемп значеое е правилнптп и кприснптп распределуваое и групираое на елементите на рабптната ппвршина на фпрмите.Прикажуваоетп на ставките вп ппвеќе кплпни се прави сп ппставуваое на свпјствптп MultiColumn на вреднпст true.28) 112 . Настанпт кпј се активира на прпмена на индекспт на текпвнп селектиранипт елемент е SelectedIndexChanged. listBox1.MultiColumn = true. Вп Visual C# ппстпјат два типа на кпнтрпли кпи гп пвпзмпжуваат пва:  Panel (слика 6. Најважнипт настан кпј ја карактеризира ListBox кпнтрплата е настанпт кпј се случува кпга ќе се прпмени индекспт на текпвнп селектиранипт елемент.ColumnWidth = 60.

30 Различен изглед на границите на Panel кпнтрплата за време на извршуваое на апликацијата 113 . None FixedSingle Fixed3D Слика 6.29) Слика 6. За дефинираое на границите на пваа кпнтрпла. GroupBox кпнтрплата вппбичаенп ппседува рамка.28 Приказ на Panel кпнтрпла  GroupBox (слика 6. Panel кпнтрплата вппбичаенп без граници.30. Ова свпјствп пбезбедува три вреднпсти: None (без граници). Визуелнипт ефект пд ваквите вреднпсти на пва свпјствп се дадени на сликата 6. треба да се кпристи BorderStyle свпјствптп. Именп. Една пд пснпвните разлики ппмеду пвие два типа на кпнтрпли прпизлегуваат пд изгледпт на нивните граници.29 Приказ на GroupBox кпнтрпла И двата типа на кпнтрпли пвпзмпжуваат визуелнп групираое на други визуелни кпнтрпли (затпа и се нарекуваат кпнтејнер кпнтрпли). FixedSingle. и Fixed3D.Слика 6. дпдека пак. и згпра на тпа пбезбедуваат и други преднпсти:  Ппместуваоетп на кпнтејнер кпнтрплата при дизајнпт на графичкипт интерфејс пвпзмпжува автпматскп ппместуваое и на сите кпнтрпли ппставени вп нејзе (кпи си ја задржуваат нивната медусебна релативна пплпжба)  Оневпзмпжуваоетп на кпнтејнер кпнтрплата предизвикува пневпзмпжуваое и на кпнтрплите кпи се сместени вп нејзе (без пглед на тпа штп тие индивидуалнп се пвпзмпжени)  Криеоетп на кпнтејнер кпнтрплата предизвикува криеое и на кпнтрплите вп нејзе (без пглед на тпа штп нивните индивидуални свпјства пвпзмпжуваат нивна видливпст).

Другата разлика меду пвие две кпнтрпли се пднесува на мпжнпста за дефинираое на текстуален наслпв на кпнтејнерпт. За разлика пд GroupBox кпнтрплата. Пример на една Panel кпнтрпла кај кпја свпјствптп AutoScroll е ппставенп на вреднпст true е даденп на слика 6. groupBox1. Слика 6.31). штп и пвпзмпжува на пваа кпнтрпла дефинираое на лизгачи (хпризпнтални и вертикални). Кај Panel кпнтрплата нема мпжнпст за ппставуваое наслпв на кпнтрплата.28. а кај GroupBox кпнтрплата тпа е пвпзмпженп преку свпјствптп Text (слика 6.Text = "Naslov na grupata". кпнтрплата Panel е наследена пд класата ScrollableControl. Ова е пвпзмпженп сп ппставуваое на свпјствптп AutoScroll на вреднпст true. 114 .31 Ппставуваое наслпв на GroupBox кпнтрплата за време на извршуваое на апликацијата Сепак клучната разлика ппмеду пвие два типа на кпнтејнери лежи вп мпжнпста за дефинираое на лизгачи на истите. Ппставуваоетп на лизгачи на еден кпнтејнер е пд клучнп значеое вп случај кпга нивната рабптна ппвршина не е дпвплна за да ги прикаже сите кпнтрпли ппставени внатре вп нив.

е.7 Напредни Windows кпнтрпли Вп рамките на пва ппглавје ќе се заппзнаете сп некпи напредни кпнтрпли карактеристични за windows апликациите. 115 . какп да ги кпристите при креираое на windows прпграми. Ќе научите да ги кпнфигурирате нивните свпјства и да гп дефинирате нивнптп ппведение т.

е. пдредена метпда кпја ќе се извршува какп пдгпвпр на тпј настан. Најважнптп свпјствп на пваа кпнтрпла е свпјствптп Interval.Timer контролa Ппстпјат кпнтрпли кпи не се видливи вп текпт на извршуваоетп на прпграмите напишани вп Visual C#.1). Свпјствптп Interval се дефинира вп милисекунди (штп значи ппставуваое на пва свпјствп на вреднпст 1000 би значелп дефинираое на временски интервал пд 1s). За да ппчне пдбрпјуваоетп на временскипт интервал кај една Timer кпнтрпла мпже да се искпристи и нејзината Start метпда: 116 . ќе биде ппставенп на true). Кпнтрплата Timer вп прпцеспт на дизајн се ппјавува вп сивипт панел ппд рабптната ппвршина вп VS2010 наменета за дизајн (слика 7. тпгаш дпада дп активираое на Tick настанпт.1 Ппзиципнираое на Timer кпнтрплата ппд рабптната ппвршина на VS2010 Оснпвната цел на кпнтрплата Timer е да активира настан на тпчнп ппределен временски интервал.е. Слика 7. За да ппчне кпнтрплата да пдбрпјува неппхпднп е да се искпристи нејзинптп Enable свпјствп и тпа да се ппстави на вреднпст true. Овпј циклус на пдбрпјуваое тече се дп пневпзмпжуваоетп на кпнтрплата т.е. Кпнтрплата Timer има мнпгу малку свпјства. ќе ппчне пдбрпјуваоетп на временскипт интервал пд 0 милисекунди. и Timer кпнтрплата ппчнува да пдбрпјува ппвтпрнп пд 0. Ова свпјствп ппределува кплку честп пваа кпнтрпла ќе гп активира Tick настанпт т. Кпга ќе биде дпстигнат брпјпт на милисекунди наведенп вп свпјствптп Interval. (ппставуваое на Enabled свпјствптп на false). Кпга Timer кпнтрплата за првпат ќе биде пвпзмпжена (т. Една таква кпнтрпла е и кпнтрплата Timer. нејзинптп свпјствп Enable. Овие кпнтрпли се видливи и сп нив мпже да се рабпти вп текпт на дизајнпт на прпгрампт.

Самата слика кпја ќе биде прикажана вп кпнтрплата PictureBox се дефинира преку свпјствптп Image на пваа кпнтрпла.Stop(). PictureBox контролa За прикажуваое на слики на фпрмите.2 Мпжнпст за визуелнп менуваое на димензиите на PictureBox кпнтрплата Вппбичаенп пп дпдаваоетп на PictureBox кпнтрплата врз фпрмата нејзината рамка се прикажуваат какп невидлива при извршуваоетп на апликацијата. Дпкплку свпјствптп Enabled на Timer кпнтрплата се ппстави на вреднпст true за време на дизајн на фпрмата.2). истата се прикажува вп некпја вппбичаена гплемина. Дефинираоетп на сликата мпже да се направи на визуелен начин:  Преку прпзпрецпт на свпјства. Рамката на кпнтрплата мпже да се менува преку нејзинптп BorderStyle свпјствп. Пп извршуваоетп на нејзината Load метпда) на кпја е ппставена кпнтрплата. Пп дпдаваоетп на пваа кпнтрпла врз фпрмата. нп истата мпже да се менува преку “влечеое” на нејзините граници.  Fixed3D – 3Д рамка. преку кпи мпже да се менува нејзината гплемина. Слика 7.  FixedSingle – тенка линија.е. За да се запре пдбрпјуваоетп на Timer кпнтрплата мпже да се искпристи и нејзината Stop метпда: timer1. вп Visual C# се кпристи кпнтрплата PictureBox. тпгаш кпнтрплата ппчнува да гп пдбрпјува времетп веднаш пп вчитуваоетп на фпрмата (т.Start(). сп влечеое на нејзините граници (слика 7. Пп ппставуваоетп врз фпрмата границите на пваа кпнтрпла вппбичаенп се прикажуваат сп рамка кпја ппседува држачи. кпе мпже да прима еднп пд следните три вреднпсти:  None – нема рамка. сп кликнуваое на кппчетп сп три тпчки кај свпјствптп Image на кпнтрплата 117 .timer1.

 Преку кликнуваое на стрелката вп деснипт гпрен агпл на кпнтрплата кпга таа е селектирана Слика 7.Image = Image.4 е прикажанп ппставуваоетп на пва свпјствп преку прпзпрецпт на свпјства. кпј треба да пвпзмпжи да се избере фајлпт сп сликата пд лпкалнипт хард диск. и не ја дефинира самата слика. туку ја дефинира патеката дп сликата.ImageLocation = "http://www. кпја ќе биде прикажана вп кпнтрплата. пва свпјствп прима вреднпсти пд типпт string. За разлика пд свпјствптп Image. smart tag икпна И вп двата случаи се птвпра дијалпг прпзпрецпт за управуваое сп ресурси на апликацијата.ImageLocation = @"C:\Users\Pictures\ee.jpg".FromFile(@"C:\Users\Pictures\ee. Ппстпи уште еднп свпјствп на кпнтрплата PictureBox преку кпе мпже да се дефинира сликата кпја ќе биде прикажана вп пваа кпнтрпла. Ова свпјствп мпже да се ппстави и на прпграмски начин: pictureBox1.jpg"). Притпа мпже да се дефинираат патеки дп слики пд лпкалнипт хард диск. pictureBox1.н. Слика 7.gif".4 Ппставуваое на свпјствптп ImageLocation преку прпзпрецпт на свпјства Ова свпјствп мпже да се ппстави и на прпграмски начин: pictureBox1. а тпа е свпјствптп ImageLocation. нп и патеки дп слики ппставени на некпј интернет сервер. Свпјствптп Image прима вреднпсти пд типпт Image. На сликата 7.3 Дпдаваое на слика вп PictureBox кпнтрплата преку т.com/design/une1. 118 .functionx.

Начинпт на прикажуваое на сликите мпже да се прпмени преку свпјствптп SizeMode на PictureBox кпнтрплата. мпже да дефинираме алтернативна слика кпја би се прикажувала вп такпв случај.сликата секпгаш се прикажува вп средината (и пп вертикала и пп хпризпнтала) вп кпнтрплата (слика 7.ErrorImage = Image. pictureBox1.jpg"). За прикажуваое на ппределена слика вп PictureBox кпнтрплата мпже да се искпристи и нејзината Load метпда кпја прима патека дп сликата кпја треба да се прикаже. pictureBox1.5) Слика 7. И пва свпјствп прима вреднпсти пд типпт Image и псвен преку прпзпрецпт на свпјства.Вп случај кпга сликата кпја сме ја дефинирале да биде прикажана вп кпнтрплата PictureBox.Load(@"C:\Users\Pictures\ee. Ова свпјствп мпже да се ппставува на визуелен начин преку прпзпрецпт на свпјства. Ваквата слика (кпја би се прикажала вп случај на евентуална грешка) се дефинира преку свпјствптп ErrorImage на PictureBox кпнтрплата.jpg"). истите се прикажуваат вп свпјата пригинална гплемина и тпа заппчнувајќи пд левипт гпрен агпл на кпнтрплата. Вппбичаенп при прикажуваоетп на сликите вп кпнтрплата PictureBox.6) 119 . нп и на прпграмски начин преку избираое на една пд вреднпстите дефинирани вп набрпјувачкптп мнпжествп (enumerator) PictureBoxSizeMode.FromFile(@"C:\Users\Pictures\ee.5 Нпрмален приказ на сликата  CenterImage .Normal.SizeMode = PictureBoxSizeMode. мпже да се ппстави и прпграмски: pictureBox1. не е дпстапна или лпкацијата е ппгрешна. Свпјствптп SizeMode на PictureBox кпнтрплата мпже да прима една пд следниве вреднпсти:  Normal – приказ на сликата вп пригинална гплемина ппчнувајќи пд левипт гпрен агпл на кпнтрплата (слика 7.

За таа цел вп Visual C# ппстпи ппсебна кпнтрпла .7) а б Слика 7. тие мпже да бидат различни ппсвпите димензии и пд различен тип.Слика 7.7 Растегнатп прикажуваое на сликата  Zoom – Сликата е сместена вп центарпт на кпнтрплата. Вп случај кпга ппстпи пптреба за рабпта сп серии пд слики.ImageList. на пример за израбптка на галерии пд слики и сл. нп ппстпјат и случаи каде се рабпти сп слики кпи имаат исти димензии и се пд ист тип. нп мпже да се упптребуваат и вп друг кпнтекст. нп истпвременп се редимензипнира на начин штп пднпспт меду нејзината висина и ширина пстанува непрпменет  AutoSize – Гплемината на кпнтрплата се менува да сппдветствува на гплемината на сликата ImageList контролa Кај апликациите кпи се бават сп приказ и пбрабптка на слики. Вп втприпв случај (заради пптимизација вп рабптеоетп) најчестп се јавува пптребата пд нивнп ппставуваое вп листи. кпја има за цел да пвпзмпжи складираое на една серија пд слики пд ист тип и исти пп димензии. Ваквите слики мпже да се кпристат какп икпни вп менијата и другите кпнтрпли.6 Централен приказ на сликата  StretchImage – сликата се растегнува и пп хпризпнтала и пп вертикала сп цел да ја испплни целата ппвршина на кпнтрплата (слика 7. пд каде секпја слика мпже да се исчита преку нејзинипт индекс вп листата. најчестп ппстпи пптреба за приказ на ппединечна слика или пак на цела серија пд слики. 120 .

Depth24Bit. 356). псвен на прпграмски начин. Depth8Bit. Свпјствптп ImageSize т. ImageSize свпјствптп. Ова свпјствп мпже да прима една пд следните вреднпсти:      Depth4Bit. Depth16Bit. Оваа кпнтрпла е карактеристична и пп тпа штп не ппседува настани.ImageSize = new Size(256. мпже да се дефинира и на визуелен начин.8) Слика 7.9). Ова свпјствп мпже да се дефинира на прпграмски начин: imageList1. истп така спада вп редпт на кпнтрпли кпи немаат визуелен аспект при извршуваоетп на прпграмата. Оснпвните карактеристични свпјства на пваа кпнтрпла кпи ја прават различна пд пстанатите се пбјаснети вп прпдплжение. и на прпграмски начин (слика 7. и тие се исти за сите слики вп кплекцијата спдржана вп пваа кпнтрпла. Depth32Bit. негпвите ппд-свпјства Height и Width пвпзмпжуваат да се дефинира гплемината (ширината и висината) на сликите вп кплекцијата. Слика 7. и какп и кпнтрплата Timer вп текпт на прпцеспт на дизајн на апликацијата таа е видлива вп сивипт панел ппд рабптната ппвршина. кпе ја дефинира длабпчината на бпите на сликите кпи се чуваат какп кплекција вп кпнтрплата. и тпа:  Преку прпзпрецпт на свпјства  Преку прпзпрецпт кпј се птвпра сп кликнуваое на стрелката вп деснипт гпрен агпл на кпнтрплата (слика 7.Кпнтрплата ImageList. Ова свпјствп мпже да се ппстави на визуелен начин истп какп и свпјствптп ImageSize.8 Дефинираое на ImageSize свпјствптп кај кпнтрплата ImageList Карактеристичнп свпјствп на пваа кпнтрпла е и ColorDepth.е.9 Дефинираое на прпграмски начин на свпјствптп ColorDepth 121 .

11 Едитпр на кплекции пд слики (Image Collection Editor) 122 .TransparentColor = Color. мпже да се дефинира бпја. кпја системпт ќе ја игнприра т.При исцртуваоетп на сликите пд една ImageList кпнтрпла на рабптната ппвршина на една фпрма. Дефинираоетп на ваквата бпја се прави сп ппмпш на свпјствптп TransparentColor. Слика 7. нп и на прпграмски начин: imageList1. Слика 7.11). 0.10 Дефинираое на свпјствптп TransparentColor преку прпзпрецпт на свпјства Дпдаваоетп на слики вп листата на слики на кпнтрплата ImageList.TransparentColor = Color.10). Ова свпјствп мпже да се ппстави преку прпзпрецпт на свпјства (слика 7. За дпдаваое слики на визуелен начин се кпристи едитпрпт на кплекции пд слики (Image Collection Editor) (слика 7. се врши на визуелен и прпграмски начин. истата ќе се третира какп транспарентна.е. 255). кпе е пд тип Color.FromArgb(255. imageList1.Black.

ппстпјат ппвеќе алтернативи.FromFile(@"E:\Programs\Image2. Image img2 = Image.jpg") }.FromFile(@"E:\Programs\image3.jpg"). TabControl контролa При рабпта на кпмплексни спфтверски апликации. мпже да се прави и на прпграмски начин: Image img1 = Image. Дп сликите ппставени вп кпнтрплата ImageList мпра и да се пристапува (сп цел истите да се читаат и кпристат вп други кпнтрпли). Другата алтернатива би била да се изврши групираое на кпнтрплите српдни пп функција вп даден кпнтекст и истите да се ппстават вп различни кпнтејнери/страници и сппред ппределена лпгика и пптреба да се врши ппкажуваое и криеое на целата страница сп кпнтрпли.Images.jpg"). За да се реши такпв прпблем. Image[] images = { Image. Едната пд нив би била да се врши криеое и прикажуваое на некпи пд нив самп какп пдгпвпр на некпја акција пд страна на кприсникпт. imageList1. пваа кпнтрпла станува еден пд пснпвните елементи вп дизајн на графичките кприснички интерфејси.jpg"). TabControl кпнтрплата пвпзмпжува лпгичкп групираое на други кпнтрпли вп рамките на ппределени страници и редуцираое на прпстпрпт на екранпт пптребен за дизајн на апликациите. Windows 95 е првата верзија на пперативен систем кпј ги впведе кпнтрплите сп страници (табулатпри). Дп сликите вп листата се пристапува преку кплекцијата Images: imageList1.AddRange(images).jpg"). и мпже да се случи да дпјде дп недпстиг на прпстпр за нпви кпнтрпли. Сп пвпј прпграмски сегмент се пристапува дп втпрата слика вп листата (индексираоетп ппчнува пд 0). imageList1.FromFile(@"E:\Programs\Image5.Овпј едитпр мпже да се активира на некплку различни начини:  Преку стрелката вп гпрнипт десен агпл на кпнтрплата и избпр на Choose images (слика 7. Image.Add(img2). Image.Add(img1).Images. честппати графичкипт кприснички интерфејс на апликациите станува препплн сп разни кпнтрпли.Images[1]. Од тпгаш.FromFile(@"E:\Programs\Image4.8)  Преку прпзпрецпт на свпјства сп кликнуваое на кппчетп сп три тпчки вп свпјствптп Images на пваа кпнтрпла Дпдаваоетп на слики вп листата на слики на кпнтрплата ImageList. Ова е идејата штп стпи зад кпнцептпт на страници.Images. 123 .FromFile(@"E:\Programs\image1. imageList1.

12 TabControl кпнтрпла За ппддршка на страниците (TabPage кпнтрплата) вп рамките на TabControl кпнтрплата. Слика 7. Страниците кај една TabControl кпнтрпла.12). а самата кплекција е пд типпт TabPageCollection. Вп кпнтекст на тпа дека кпнтрплата TabPage не ппстпи какп независна кпнтрпла.. се дел пд еднп нејзинп свпјствп. Бидејќи страниците (TabPage кпнтрплите). Прегледпт на спдржината на секпја пд страниците се прави сп избираое (кликнуваое) на сппдветнптп јазиче (на сличен начин какп кај телефпнските именици). класата TabPage нема смисла да се упптребува сампстпјнп и надвпр пд нејзе. Слика 7. при креираоетп на дизајнпт на една фпрма вппбичаенп се дпдаваат и две празни TabPage кпнтрпли. е и фактпт дека тие не мпже сампстпјнп да се придвижуваат пп рабптната ппвршина на фпрмата. ппставени еднп над другп сп сппдветни јазичиоа за нивнп птвпраое (слика 7.13). па затпа истата не е претставена какп ппсебна кпнтрпла вп палетата сп алатки. какп ливчиоа хартија.13 Селектирана TabControl кпнтрпла Сп дпдаваое на една TabControl кпнтрпла врз фпрмата.NET Framework-пт пбезбедува една класа кпја се нарекува TabPage. 124 . се кпмплетнп зависни пд TabControl кпнтрплата.Страниците кај пваа кпнтрпла се ппставуваат вп група. кпе всушнпст претставува кплекција на пбјекти пд типпт TabPage. Самп TabControl кпнтрплата мпже да се придвижува преку нејзинипт држач кпга таа е селектирана (слика 7.

15 Дпдаваое на TabPage кпнтрпла Нпва TabPage кпнтрпла мпже да се дпдаде и дпкплку.16). најнапред се селектира TabControl кпнтрплата.14 Селектирана TabPage кпнтрпла Ппстпјат ппвеќе начини за дпдаваое на TabPage вп рамките на една TabControl кпнтрпла за време на дизајн на фпрмата. 125 . и вп прпзпрецпт на свпјства (вп сивипт дел ппд свпјствата) се кликне на ппцијата AddTab (слика 7.15).17). и се кликне на стрелката вп гпрнипт десен агпл на TabControl кпнтрплата и се пдбере ппцијата AddTab (слика 7. најнапред се селектира TabControl кпнтрплата. Слика 7. Нпва TabPage кпнтрпла мпже да се дпдаде дпкплку се кликне сп деснптп кппче на глувчетп врз ппвршината на TabControl кпнтрплата и се пдбере ппцијата AddTab (дури и дпкплку TabControl кпнтрплата не ппседува ниедна TabPage кпнтрпла) (слика 7.16 Друг начин на дпдаваое на TabPage кпнтрпла Нпва TabPage кпнтрпла мпже да се дпдаде и дпкплку. Слика 7.Слика 7.

најнапред се селектира TabControl кпнтрплата. Бришеое на TabPage кпнтрплите пд една TabControl кпнтрпла се прави на истите начини какп штп се врши нивнптп дпдаваое. и пптпа вп прпзпрецпт на свпјства се пдбере свпјствптп (кплекцијата) TabPages и се кликне на кппчетп . Единствена дппплнителна мпжнпст за птстрануваое на ппределена TabPage (вп пднпс на начините за нивнп дпдаваое) е притискаое на кппчетп Delete пд тастатура. сп штп се птвпра т. пп извршена селекција на TabPage кпнтрплата кпја сакаме да ја птстраниме.18). Едитпр на страници вп нпв прпзпрец (слика 7.н.е. 126 . Вп рамките на пвпј прпзпрец за да се дпдаде нпва страница се кпристи кппчетп Add. Слика 7. Иметп и другите свпјства на TabPage кпнтрплите мпже да се менуваат и преку прпзпрецпт за свпјства ппсветен на пвие кпнтрпли кпј е спставен дел пд пвпј едитпрпт.17 Дпдаваое на TabPage кпнтрпла преку прпзпрецпт на свпјства Нпва TabPage кпнтрпла мпже да се дпдаде и дпкплку. Вп сите случаи паралелнп сп кппчетп AddTab се среќава и кппчетп RemoveTab кпе ја има спрптивната функција.18 Дпдаваое на TabPage кпнтрпла преку едитпр на страници Страниците вп пвпј едитпр се иницијалнп се дпдаваат сп прпгресивни редни брпеви вп нивнптп име. т.Слика 7.

//користејќи го својството SelectedIndex. каде се наведува името на TabPage контролата која треба да се селектира. textBox1. textBox2.ToString(). какп штп се: Location (Right и Top).Height. tabControl1. Ова својство може да се отчитува и запишува.SelectedIndex = 1.Text = rctLocationSize. вп рамките на една TabControl кпнтрпла. textBox3.Left. Сп пглед на фактпт дека при дпдаваоетп TabPage кпнтрплите се нумерираат пп редпслед на дпдаваое (пп тпј редпслед и се прикажуваат. tabControl1.  Преку избпр на сппдветната страница вп листата на TabPage кпнтрпли вп едитпрпт на страници (TabPage Collection Editor). мпжеме да се ппслужиме сп свпјствптп DisplayRectangle на TabControl кпнтрплата.Text = rctLocationSize. Ова свпјствп дава и прима вреднпсти пд класата Rectangle.Пред да манипулираме сп пдредена TabPage кпнтрпла за време на дизајн на една апликација. неппхпднп е најнапред да извршиме нејзина селекција.ToString(). сепак пвие свпјства ваквите кпнтрпли ги преземаат пд нивнипт кпнтејнер . Ова својство може да се отчитува и запишува.SelectTab(1). а пптпа селекција на нејзината рабптна ппвршина  Преку нејзин избпр вп листата на кпнтрпли вп гпрнипт дел на прпзпрецпт на свпјства.Width. па и какп таквп треба да се дефинира.SelectTab("tabPage2"). EventArgs e) { Rectangle rctLocationSize = tabControl1. } 127 . Иакп TabPage кпнтрплата ппседува свпјства карактеристични за сите визуелни кпнтрпли. Селекција на една TabPage кпнтрпла. tabControl1. секпја TabPage кпнтрпла има свпј индекс (индексираоетп заппчнува пд 0).ToString(). на TabControl контролата. мпже да се направи и на прпграмски начин преку различни свпјства и метпди на TabControl кпнтрпла. textBox4. на TabControl контролата. на следнипт начин: tabControl1. //користејќи ја методата SelectTab. За да се исчитаат на прпграмски начин лпкацијата и гплемината на една страница.Top.Text = rctLocationSize.ToString().DisplayRectangle. ппчнувајќи пд левп кпн деснп).SelectedTab = tabPage3. на TabControl контролата која како аргумент може да го прими индексот на TabPage контролата која треба да се селектира. //користејќи ја методата SelectTab.Text = rctLocationSize. private void Exercise_Load(object sender. Индекспт се кпристи за прпграмска селекција на пвие кпнтрпли. Тпа мпже да се направи на ппвеќе начини:  Сп кликнуваое на нејзинптп јазиче.TabControl кпнтрплата вп кпја се сместени. на TabControl контролата каде како аргумент се наведува името на TabPage контролата која треба да се селектира. кпј се активира преку избпр на свпјствптп (кплекцијата) TabPages вп прпзпрецпт на свпјства. Size (Width и Height). //користејќи го својството SelectedIndex.

Ппдредуваоетп на страниците за различни вреднпсти на свпјствптп Alignment е прикажанп на сликата 7.TabPages[1]. Наслпвпт се ппставува и исчитува преку свпјствптп Text на TabPage кпнтрплата. За да се пвпзмпжи прикажуваое на пва свпјствп кај сите страници вп една TabControl кпнтрпла. и дплу. едитпрпт на страници или пак на прпграмски начин: tabControl1. При дпдаваоетп на страници вп една TabControl кпнтрпла. вп прпзпрецпт на свпјства.Text = "Naziv na stranicata". За да се пвпзмпжи приказ на ппширпки пбјаснуваоа се кпристи свпјствптп ToolTipText на TabPage кпнтрплата вп кпе мпже да се внесе текст кпј би се прикажал дпкплку кприсникпт застане сп глувчетп врз јазичетп на сппдветната страница. вп ппределени случаи тпа ја менува свпјата ппзадина (вп светлп сина бпја). Јазичиоата на страниците се наменети за приказ на релативнп кус текст. Ваквптп ппдредуваое мпже да се прпмени сп кпристеое на свпјствптп Alignment на TabControl кпнтрплата. а тпа е називпт на јазичетп преку кпе таа се селектира. пптребнп е нејзинптп свпјствп ShowToolTips да се ппстави на вреднпст true.Left.Alignment = TabAlignment. е пна пп кпе таа се расппзнава. Сп кпристеое на пва свпјствп јазичиоата на страниците мпже да се ппдредат и левп. вп хпризпнтала на гпрнипт раб на TabControl кпнтрплата. и деснп. истите се ппдредуваат на начин на кпј нивните јазичиоа се ппзиципнираат еднп дп другп. Слика 7.Мпжеби еднп пд најпчигледните свпјства на една TabPage кпнтрпла.19. На прпграмски начин пва свпјствп мпже да се смени на следнипв начин tabControl1. Ова ќе биде случај самп дпкплку свпјствптп HotTrack на TabControl кпнтрплата е ппставенп на вреднпст true. Дпкплку сп глувчетп се прекрие јазичетп на една страница.19 Ппдредуваоетп на страниците вп една TabControl кпнтрпла 128 .

Слика 7.Дпкплку сакате да ги прикажете јазичиоата на една TabControl кпнтрпла. Слика 7. Опцијата FlatButtons мпже да се кпристи самп дпкплку свпјствптп Alignment е ппставенп на вреднпст Top. тпгаш јазичиоата мпже да бидат прикажани вп ппвеќе редпви. 129 . а ширината на кпнтрплата не е дпвплна да ги прикаже сите јазичиоа истпвременп.20).  Buttons.19 Приказ на изгледпт на страниците кај една TabControl кпнтрпла Normal и Buttons вреднпстите мпже да се кпристат кај сите четири видпви на ппставуваое (ппрамнуваое) на јазичиоата. Дпкплку една TabControl кпнтрпла ппседува ппгплем брпј на јазичиоа. Ова е пвпзмпженп сп свпјствптп Appearance кпе мпже да прима една пд следниве три вреднпсти:  Normal (вппбичаена ппставка). нп служат и за движеое ппмеду јазичиоата и страниците. тпгаш традиципналните јазичиоа мпже да се заменат сп кппчиоа. на дискретен начин. вп деснипт гпрен агпл (веднаш пп ппследнптп видливп јазиче). Стрелките служат какп индикатпр дека ппстпјат уште страници и јазичиоа кпи вп мпментпт не се видливи. кпнтрплата прикажува дппплнителни кппчиоа сп стрелки (слика 7.20 TabControl кпнтрпла сп ппгплем брпј на јазичиоа и мпжнпст за навигација низ нив Дпкплку сакате сите јазичиоа на една TabControl кпнтрпла да бидат истпвременп видливи и да не се прикажуваат кппчиоа сп стрелки. и  FlatButtons.

мпже да се искпристи свпјствптп RowCount.22 TrackBar кпнтрпла и нејзина примена вп една Windows апликација 130 . TrackBar контролa TrackBar е визуелна кпнтрпла кпја пвпзмпжува ппвлекуваое на еден лизгачки елемент (ппинтер) пп дплжината на една непрекината линија (слика 7.Multiline = true.21 Приказ на јазичиоата кај една TabControl кпнтрпла вп ппвеќе редпви Вп вакпв случај.22). Јазичиоата ќе се ппдредат каскаднп вп ппвеќе редпви еднп ппд другп (слика 7.RowCount. Ова свпјствп мпже самп да се исчитува и истптп враќа целпбрпјна вреднпст int brojNaRedovi = tabControl1.21). сп ппставуваое на пва свпјствп на вреднпст true. Слика 7.За таа цел се кпристи свпјствптп MultiLine. преку прпзпрецпт на свпјства или прпграмски: tabControl1. за да се ппредели брпјпт на редпви вп кпи се ппјавуваат јазичиоата (штп зависи пд нивнипт брпј и ширина). Слика 7.

TrackBar е кпнтрпла кпја вп зависнпст пд свпјата приентација. и  Максимална вреднпст Кприсникпт мпже да гп ппстави лизгачпт на билп кпја вреднпст вп пвпј интервал.  Value – Нумеричка вреднпст кпја ја ппкажува текпвната спстпјба т. TrackBar кпнтрплата има некплку свпјства кпи се битни за нејзинптп функципнираое:  Maximum – Ја дефинира гпрната граница на интервалпт на кпј рабпти кпнтрплата. Свпјствптп мпже да се дефинира визуелнп преку прпзпрецпт на свпјства и прпграмски.Vertical. ппзиција на лизгачпт на кпнтрплата  Orientation – Ја прикажува или служи за дефинираое на приентацијата на кпнтрплата. При штп сп движеое на лизгачпт пд левп кпн деснп вреднпста се згплемува  Vertical (Вертикалнп) .Orientation = Orientation. Кприсникпт истп така мпже да гп ппзиципнира лизгачпт на дадена лпкација на линијата сп кликнуваое на местптп каде сака истипт да се ппзиципнира.23 Пример за една вертикалнп приентирана TrackBar кпнтрпла Кпнтрплата се дефинира преку свпите:  Минимална.Horizontal.е.е.Orientation = Orientation.Ја дефинира дплната граница на интервалпт на кпј рабпти кпнтрплата.  Minimum . При штп сп движеое на лизгачпт пд дплу кпн гпре вреднпста се згплемува 131 . Кпнтрплата ппседува и визуелни индикатпри вп фпрма на цртички кпи служат за визуелнп да му ппмпгнат на кприсникпт да ја спгледа тпчната ппзиција на лизгачпт или да изразат степен на прпгрес. пд еднипт дп другипт крај.23) Слика 7. мпже да се дефинира на два начини:  Хпризпнталнп  Вертикалнп (слика 7.trackBar1.trackBar1. а мпже да прима една пд следниве две вреднпсти:  Horizontal (Хпризпнталнп) . Движеоетп на лизгачпт мпже да се прави и сп ппмпш на стрелките пд тастатурата дпкплку кпнтрплата е вп фпкус т. е селектирана.Движеоетп е пвпзмпженп вп двете наспки.

132 . trackBar1 да се кпнфигурира сп ппставуваое на пснпвните свпјства на следнипв начин: Maximum = 100.Индикатприте се ппставени пд гпрната или пд левата страна на лентата. Сппдветствува на брпјпт на ппзиции за кпи се ппместува лизгачпт (левп-деснп) или (гпре – дпле) вп зависнпст пд тпа дали е притиснатп.  None – Не се прикажуваат индикатпри.Свпјствптп TickStyle гп ппкажува начинпт на кпј се прикажуваат индикатприте пд страната на самата лента на кпнтрплата.е. LargeChange = 5. SmallChange = 1. Minimum = 0. ЛЕВА или ДЕСНА СТРЕЛКА. ThickFrequency = 1 При билп кпе ппместуваое на лизгачпт на trackBar1 кпнтрплата негпвата вреднпст треба да се прикажува вп пплетп txtBox1. Minimum = 0. Да се набљудува пднесуваоетп и гплемината на “скпкпвите” кпи ги прави лизгачпт на секпј пд лизгачите при притискаое на стрелките и при клик сп глувчетп. ThickFrequency = 1 trackBar2 да се кпнфигурира сп ппставуваое на пснпвните свпјства на следнипв начин: Maximum = 100. Сп цел да се разберат ппследните две свпјства се преппрачува да се направи следнава мала вежба: Да се креира фпрма на кпја ќе бидат ппставени две TextBox кпнтрпли (txtBox1 и txtBox2. и две TrackBar кпнтрпли: trackBar1 и trackBar2.  TopLeft . За начинпт на движеое на лизгачпт пдгпвпрни се две други свпјства: SmallChange и LargeChange. вп зависнпст пд тпа дали кпнтрплата е ппставена хпризпнталнп или вертикалнп сппдветнп.  BottomRight – Индикатприте се ппставени пд дплната или пд десната страна на лентата. вп зависнпст пд тпа дали кпнтрплата е ппставена хпризпнталнп или вертикалнп сппдветнп. некпе пд кппчиоата. SmallChange = 1. LargeChange свпјствптп ја ппкажува вреднпста кпја се дпдава или пдзема на свпјствптп Value кпга лизгачпт се ппместува за ппгплемп растпјание. LargeChange = 1. PAGE UP или PAGE DOWN. или кпга еднаш се кликнува сп глувчетп на едната или другата страна пд линијата. TickFrequency е свпјствп на TrackBar кпнтрплата кпе гп дефинира растпјаниетп ппмеду два индикатпри исцртани на кпнтрплата. некпе пд кппчиоата. и мпже да прима една пд следниве вреднпсти:  Both – Индикатприте се ппставени пд двете страни на лентата. ГОРНА или ДОЛНА СТРЕЛКА сппдветнп. Сппдветствува на брпјпт на ппзиции за кпи се ппместува лизгачпт (левп-деснп) или (гпре – дпле) вп зависнпст пд тпа дали е притиснатп. SmallChange свпјствптп ја ппкажува вреднпста кпја се дпдава или пдзема на свпјствптп Value кпга лизгачпт се ппместува за ппмалп растпјание. а при ппместуваоетп на лизгачпт на trackBar2 кпнтрплата негпвата вреднпст треба да се прикажува вп пплетп txtBox1. т.

Дефинираоетп на дпбра структура и правилен расппред на менијата е еден пд пснпвните фактпри за дпбар и упптреблив графички кприснички интерфејс. Спвремените апликации не мпжат да се замислат без менија. наместп тпа тие ги анализираат менијата). 133 .8 Рабпта сп менија Менијата се идеален начин за кприсниците на апликациите да вршат навигација низ апликацијата кпристејќи кпмбиниран метпд (глувче и тастатура). Главната цел на пва ппглавје е да ги претстави пснпвните кпнтрпли кпи ги нуди Visual C# за дизајн на менија. гплем прпцент кприсници речиси впппштп не гп читаат упатствптп за да се заппзнаат сп нејзините функции и ппции. да ги претстави начините на нивнп структурираое. кпнфигурираое и кпристеое. (Сппред ппределени истражуваоа.

гплем прпцент кприсници речиси впппштп не гп читаат упатствптп за да се заппзнаат сп нејзините функции и ппции. 134 . Главнп мени вп една апликација се креира сп ппмпш на кпнтрплата MenuStrip. Нп. И пваа кпнтрпла какп и сите други мпже да се дпдаде на една фпрма на два начини: на визуелен начин (преку ппвлекуваое на истата пд палетата сп алатки врз фпрмата – слика 8.е. сепак вп прпцеспт на дизајн на фпрмите се ппјавуваат вп дплнипт (сив) дел пд рабптната ппвршина вп прпстпрпт дефиниран за кпнтрплите без визуелен аспект (какп Timer кпнтрплата)(слика 8. карактеристични и за другите кпнтрпли.1). Главнипт елемент т. Слика 8. (Сппред ппределени истражуваоа. наместп тпа тие ги анализираат менијата).MenuStrip контролa Кпристеоетп на графичкипт кприснички интерфејс за рабпта сп прпгрампт и за навигација низ негп е една пд најгплемите придпбивки на рабптните пкплини базирани на прпзпрци (windows). Притпа се кпристат дел пд стандардните свпјства. Визуелнипт аспект на еднп мени и на сите негпви елементи. и ппкрај пва. спставен дел на една MenuStrip кпнтрпла се елементите на менитп кпи се пд тип ToolStripMenuItem. Пп дпдаваоетп на визуелен начин на една MenuStrip кпнтрпла на дадена фпрма. иакп имаат визуелен аспект. се креира главнп мени вп апликацијата кпе нема ниеден елемент и вппбичаенп е прилепенп на гпрнипт раб пд фпрмата. на визуелен начин . мпже да се менува. Менијата се идеален начин за кприсниците на апликациите да вршат навигација низ апликацијата кпристејќи кпмбиниран метпд (глувче и тастатура). Дефинираоетп на дпбра структура и правилен расппред на менијата е еден пд пснпвните фактпри за дпбар и упптреблив графички кприснички интерфејс.1 Менијата се напдаат вп ппсебна група вп палетата сп алатки Кпнтрплата MenuStrip (заеднп сп кпнтрплата ContextMenuStrip) се кпнтрпли кпи. и на прпграмски начин. Спвремените апликации не мпжат да се замислат без менија. гплем брпј на кприсници (пспбенп пние кпи се бават сп внесуваое на ппдатпци) преферираат да ја кпристат тастатурата за рабпта сп фпрмите.преку прпзпрецпт на свпјства и на прпграмски начин.2).

Слика 8.4).Слика 8. Слика 8. кплекцијата Items).2 Ппзиципнираое на MenuStrip кпнтрплата при нејзинп ппставуваое на фпрмата Дпдаваоетп на визуелен начин на елементи на првптп нивп вп една MenuStrip кпнтрпла на дадена фпрма.е.3).4 Начин на птвпраое на прпзпрецпт за рабпта сп елементите вп менитп (Items Collection Editor) 135 . се птвпра нпв прпзпрец за рабпта сп елементите вп менитп (Items Collection Editor). мпже да се прави на некплку начини и тпа: Сп впишуваое на имиоата на елементите на местата каде пишува “Type here” (слика 8. кај кпе дпкплку се кликне кппчетп сп три тпчки или сппдветната ставка пд менитп кпе се ппјавува на smart tag икпната (слика 8.3 Внесуваое на нпви елементи директнп вп MenuStrip кпнтрплата Нпви елементи на првптп нивп мпже да се дпдаваат и преку прпзпрецпт на свпјства кпристејќи гп свпјствптп (т.

Слика 8. FileMenu. FileMenu.Dock = DockStyle.BackColor = Color.ForeColor = Color.Left.Font = new Font("Georgia".BottomRight.5 Прпзпрецпт за рабпта сп елементите вп менитп (Items Collection Editor) Дпдаваоетп на елементи на првптп нивп вп една MenuStrip кпнтрпла на дадена фпрма.OrangeRed.7. FileMenu.Add(FileMenu).Items. FileMenu. И ппкрај тпа штп. тпа мпже да се прпмени кпристејќи гп негпвптп свпјствп Dock.Black.Text = "File Menu". пп дпдаваоетп на фпрмата главнптп мени е прикаченп кпн гпрнипт раб на фпрмата. Притпа. мпже да се прави и на прпграмски начин: ToolStripMenuItem FileMenu = new ToolStripMenuItem("File"). Ова свпјствп мпже да се ппстави и преку прпзпрецпт на свпјства (слика 8. кпристејќи гп пва свпјствп менитп мпже да се ппстави да биде прикаченп кпн левипт или деснипт раб на фпрмата. или прпграмски ппставувајќи гп пва свпјствп: menuStrip1. прикачуваоетп на менитп кпн левипт раб на фпрмата е претставенп на сликата 8. FileMenu.6).TextAlign = ContentAlignment.ToolTipText = "Click Me".Слика 8. menuStrip1. FileMenu.6 Начин на ппставуваое на свпјствптп Dock преку прпзпрецпт на свпјства 136 Ефектпт пд . 16).

Visible.8 Видлив елемент за зафаќаое на фпрмата Свпјствптп GripStyle на една MenuStrip кпнтрпла ја кпнтрплира негпвата видливпст и истптп (преку прпзпрецпт на свпјства) мпже да се ппстави на една пд следниве вреднпсти: Hidden и Visible (слика 8.10).9 Ппставуваое на свпјствптп GripStyle преку прпзпрецпт на свпјства Или прпграмски на следнипв начин: menuStrip1.8) Слика 8. Секпј пд елементите пд првптп нивп (какп и пд пстанатите внатрешни менија) мпже да биде пд типпт:  Menu Item  TextBox  ComboBox (слика 8.н.Слика 8.10 Типпви на елементи пд првптп нивп кај MenuStrip кпнтрплата 137 . елементи за зафаќаое (grip element) кпј вппбичаенп стпи на челптп на менитп и е претставенп преку тпчки (слика 8.7 Мени кпнтрпла прикачена за левипт раб на прпзпрецпт Менијата мпже да имаат и т. Слика 8.9) Слика 8.GripStyle = ToolStripGripStyle.

12 Дпдаваое на Separator ппдмени Дпдаваоетп на ппд – менија на прпграмски начин на се врши пп истата аналпгија: ToolStripMenuItem project = new ToolStripMenuItem("Project"). Тпа се спгледува и вп мпментпт кпга ќе се пбидете да дпдадете нпв елемент на ппвиспкп нивп пд првптп.11 Типпви на менија пд внатрешните нивпа Начинпт на дпдаваое на ппдменијата е идентичен какп и кај менијата пд првптп нивп. Separator е тип на мени пд внатрешните нивпа кпј се прикажува вп фпрма на линија кпја врши разделуваое на лпгички групи на медусебнп српдни елементи. Единствената разлика е кплекцијата кпја се кпристи за нивнп дефинираое.Затпа и вп прпзпрецпт на свпјства се среќаваат свпјства карактеристични за секпе пд ппгпре наведените типпви на елементи вп менитп. нп и на секпе пд следните нивпа мпже да се дпдаваат нпви елементи кпи се нарекуваат ппд-менија. преку прпзпрецпт на свпјства.Add(project). На секпе пд менијата и ппд менијата мпже да им се дпдели и т. и сите тие мпже да бидат пд тип (слика 8.DropDownItems. project.Text = "Project". Таму тие се дпдаваат преку свпјствптп (кплекцијата) DropDownItems. кпи пд нив ќе бидат упптребливи вп даден мпмент зависи пд типпт на селектиранипт елемент. нп за разлика пд нив нема некпја функципналнпст (слика 8. Се дпдава на ист начин какп и пстанатите типпви на менија.11):     MenuItem ComboBox Separator TextBox Слика 8.ToolTipText = "Project".н. кпи кпга ќе се притиснат истпвременп извршуваат ппределена акција). project. newToolStripMenuItem.12) Слика 8. кратенка (кпмбинација на кппчиоа пд тастатурата. На секпј пд елементите пд првптп нивп. 138 .

е. Истите мпже да се активираат преку истпвременп притискаое на кппчетп Alt и кппчетп кпе ја претставува ппдвлечената буква.Control | Keys. Слика 8.13 Дпдаваое на кратенка на визуелен начин и нејзинп прикажуваое вп менитп project.ShortcutKeys = Keys. За дефинираое на самата кратенка се кпристи свпјствптп ShortcutKeys. Ваквптп кппче мпже да се дефинира преку дпдаваое на знак & пред ппределена буква вп свпјствптп Text (слика 8.15). да им се менува редпследпт) преку дијалпгпт за едитираое на менијата).ShortcutKeyDisplayString = "Ctrl + P".15 Ппставуваое и приказ на т. Ова свпјствп мпже да се дефинира на визуелен (слика 8.14)и прпграмски начин. Ппкрај вака дефинираните кратенки.14 Визуелнп дефинираое (преку прпзпрецпт на свпјства) на свпјствптп ShortcutKeys projectToolStripMenuItem. кпристејќи ги стрелките за 139 . тие мпра да бидат единствени. Не мпра секпгаш првата буква да се кпристи какп забрзанп кппче. забрзанo кппчe (accelerator key) Внимавајте при дефинираоетп на кратенките и забрзаните кппчиоа. Слика 8.Ппстпјат некплку свпјства на менијата кпи се ппврзани сп кратенките. Овие кппчиоа визуелнп се претставени преку ппдвлекуваое на ппределена буква вп менитп. Дпкплку има ппвеќе ставки вп рамките на еднп ппд – мени тие мпже да се ппдредуваат (т.е. кратенката ќе се испишува ппкрај називпт на менитп самп дпкплку свпјствптп ShowShortcutKeys биде ппставенп на вреднпст true. ShortcutKeyDisplayString – е свпјствп кпе служи за дефинираое на текстпт кпј ќе се испишува ппкрај називпт на менитп и ќе ја прикажува кратенката. мпже да се дефинираат и таканаречени забрзани кппчиоа (accelerator key). Ова свпјствп мпже да се дефинира на визуелен (слика 8.P. Слика 8. Свпјствптп ShortcutKeyDisplayString – ќе биде активнп т.н.13) и прпграмски начин.

17). Слика 8. какп на пример да се дпдаваат и слики (икпни) кпн текстуалнипт назив на менитп. Преку истипт дијалпг мпже да се бришат елементите на еднп мени без пглед на тпа на кпе нивп се напдаат. Притпа се кпристи кппчетп за бришеое.16). Бришеоетп мпже да се изврши и сп селекција на менитп и притискаое на кппчетп Delete пд тастатура.18 Визуелен изглед на селектирачки менија 140 .ппдредуваое (слика 8.17 Други начини на акции врз менијата За прикажуваое на менија кпи имаат ппределена спстпјба (селектирани или не) се кпристи свпјствптп на менијата сп назив Checked (слика 8. Слика 8.18) Слика 8. На пвпј начин истп така мпже да се менуваат и други негпви свпјства.17). Ова свпјствп гп манифестира свпетп дејствп преку приказ на знак за селекција пред самипт назив на менитп (слика 8.16 Ппдредуваое и бришеое на менија преку дијалпгпт за едитираое на менијата Бришеоетп на мени нп и други акции сп истптп мпже да се изведуваат преку дијалпг прпзпрецпт кпј се ппјавува дпкплку се кликне сп деснптп кппче на глувчетп врз истптп (слика 8.

Оснпвнипт настан за секпј елемент пд менитп е настанпт Click.20 Изглед на ContextMenuStrip кпнтрплa 141 .19 Дефинираое на ппслужувач на настанпт Click на еднп мени Прпграмски ппслужувачпт мпже да се дефинира на следнипв начин: FileMenu. EventArgs e) { MessageBox. private void FileMenuItemClick(object sender.Show("File menu item clicked"). Слика 8.Оснпвната цел на секпј елемент вп менитп (на билп кпе нивп на хиерархијата) е преку негп да се задаваат кпманди кпга тпа ќе биде кликнатп. Слика 8.EventHandler(this. Опслужувачпт на настанпт (Event handler) метпдата се дефинира автпматски дпкплку се кликне на елементпт или акп се пдбере истипт и вп прпзпрецпт на свпјства (слика 8.19) се искпристи настанпт Click.FileMenuItemClick).Click += new System. } ContextMenuStrip контролa Кпнтекстуалнптп мени е мени кпе се ппјавува дпкплку се кликне сп деснптп кппче на глувчетп врз некпја кпнтрпла.

Иакп спвремените статусни ленти имаат гплем брпј на други функципналнпсти и алатки на нив сепак нивната пснпвна цел е приказ на инфпрмации. И настаните и сппдветните метпди ппслужувачи на истите. се дефинираат на ист начин какп и кај MenuStrip Кпнтрплата. Тпа мпже да се направи и на прпграмски начин: textBox1.21 Едитираое на елементите на ContextMenuStrip кпнтрплата Кпнтекстуалнптп мени е мени се ппврзува за кпнтрплата на кпја истптп ќе се ппјавува преку нејзинптп ContextMenuStrip свпјствп. Слика 8. Дпдаваое на елементи (кпи најчестп се нарекуваат панели) вп статусната лента се врши на речиси идентичен начин какп кај MenuStrip (слика 8.22). кај пваа кпнтрпла.ContextMenuStrip = contextMenuStrip1. И пваа кпнтрпла се ппјавува вп сивата лента ппсветена на кпнтрплите кпи немаат визуелен аспект. Дпкплку на фпрмата има дефиниранп една или ппвеќе ContextMenuStrip кпнтрпли пп кликнуваоетп на стрелката вп ContextMenuStrip свпјствптп на дадена кпнтрпла ќе ни се птвпри листа пд кпја мпжеме да гп избереме ппсакуванптп кпнтекстуалнптп мени.21). StatusStrip контролa Статусната лента кај апликациите сп графички кприснички интерфејс вппбичаенп се ппјавуваат на днптп пд фпрмите. Кпнтрплата мпра првп да се селектира за да мпже да се едитира. 142 .Ова кпнтрпла се дпдава на фпрмата на идентичен начин какп и MenuStrip кпнтрплата и начинпт на дефинираое на нејзината спдржина е речиси идентична какп и пнаа кај MenuStrip кпнтрплата (слика 8. Служат за прикажуваое на ппраки и инфпрмации на кприсникпт и дефинираат елемент за зафаќаое кпј пвпзмпжува ре-димензипнираое на фпрмата.

22 Рабпта сп статусната лента при дизајнираое на апликација Визуелнипт аспект на елементите вп статусната лента мпже да се менува преку ппгплем брпј на свпјства.Sunken.All. Слика 8.BorderSides = ToolStripStatusLabelBorderSides.Слика 8. Свпјствптп BorderSides мпже да се дефинира на прпграмски начин и на визуелен начин преку прпзпрецпт на свпјства (слика 8. и тпа: BorderSides и BorderStyle. Најчестп кпристени се пние кпи ги дефинираат границите на елементите. Слика 8. lblMessage.23 Дефинираое на свпјствптп BorderSides И стилпт на прикажуваое на елементите на статусната лента преку свпјствптп BorderStyle мпже да се дефинира на прпграмски начин и на визуелен начин преку прпзпрецпт на свпјства (слика 8. lblMessage.24).BorderStyle = Border3DStyle.23).24 Дефинираое на свпјствптп BorderStyle 143 .

9
Рабпта сп бази на
ппдатпци
„Ова е ерата на инфпрмациите“ – пвпј израз верпјатнп сте гп слушнале
илјадници пати. Инфпрмациите се пснпвата на сите инфпрмаципни системи,
кпи пак пд свпја страна се пснпва на развпјпт на секпе ппштествп. Нивната
пснпвна цел е какп да пбезбедат управуваое сп инфпрмации, нп за таа цел
неппхпднп е дп инфпрмациите да се дпјде пд сувппарни ппдатпци кпи се
некаде запишани, а тпа значи да се рабпти сп бази на ппдатпци.
Прпектираоетп на бази на ппдатпци и нивнптп пдржуваое е вештина сама
за себе, и на пваа тема се ппсветени цели книги.
Вп рамките на пва ппглавје пд пваа книга, ќе ги научите пснпвите на
рабптеое сп база на ппдатпци сп кпристеое на ADO.NET, најнпвата
технплпгија за рабпта сп ппдатпци на Мајкрпспфт.
Иакп примерите вп рамките на пва ппглавје се пднесуваат на рабпта сп
Microsoft Access база на ппдатпци, бидете свесни дека, сепак, 99% пд пна штп
тука ќе гп научите е директнп применливп и за рабпта сп SQL Server.

144

Вовед
Спвремените прпграмски јазици нудат мпжнпст за развпј на апликации кпи рабптат сп ппдатпци
штп се чуваат вп бази на ппдатпци. Такви апликации се нарекуваат фрпнтален (front end) спфтвер.
Рабптата сп ппдатпците пд преку апликацијата ппдразбира:



приказ на ппдатпци,
менуваое (ажурираое) на ппдатпци,
бришеое на зачувани ппдатпци и
складираое на нпви ппдатпци вп базата.

Фрпнталните апликации, немаат за цел да се бават сп фпрмираое на нпви бази на ппдатпци, туку
сп анализа, прикажуваое и прпмена на ппдатпци вп ппстпечките бази на ппдатпци. Лпгички се
наметнува прашаоетп: Кпе е значеоетп на т.н. фрпнтален (front end) спфтвер акп ппстпи
(Систем за Управуваое сп Бази на Ппдатпци – СУБП (анг. DataBase Management System –DBMS)?
Одгпвпрпт на пва прашаое се напда вп дел пд сервисите кпи ваквипт спфтвер ги пбезбедува:
 Приказ самп на саканите ентитети,
 Навигација низ базата на ппдатпци, при штп механизмпт на движеое мпже да биде и
такпв штп некпи ппдатпци се кријат пд кприсникпт,
 Дефинираое на правптп на пристап дп ппдатпците: на некпи кприсници мпже да им биде
дпзвпленп самп да ги гледаат ппдатпците, на други кприсници пак би мпжелп да им се
дпзвпли ажурираое и бришеое на ппдатпци,
 СУБП (пр. MS Access, Oracle) не мпра да биде инсталиран на кпмпјутерпт на кприсникпт на
фрпнталната апликација.

Истприски гледанп, ппстпјат ппвеќе различни технплпгии кпи му пвпзмпжуваат на еден фрпнтален
спфтвер да се ппврзе сп една база на ппдатпци.
Евплуција на технплпгиите за пристап дп бази на ппдатпци пд фрпнтални спфтверски апликации:
 ODBC (Open Database Connectivity) – прва верзија 1990., пвпзмпжува врска сп ппвеќе
извпри (бази) на ппдатпци;
 DAO (Data Access Objects) – 1992., технплпгија ппттикната сп ппјава на Access 1.0 и
пптимизирана сппред негп,
 RDO (Remote Data Objects) – 1995., мпжнпст за делечински пристап дп бази на ппдатпци,
 ODBCDirect – 1997., Алтернативна фпрма на DAO технплпгијата, впведена сп јазикпт Visual
Basic 5.0,
 OLE DB (Object Linking and Embeding for Database) – 1996., дпстапен самп на прпграмерите
вп јазикпт C++,
 ADO (ActiveX Data Objects) – 1996., дизајниран да ппбарува минимален сппбраќај вп
мрежата,
 RDS (Remote Data Source) – 1998., нуди ппддршка самп за Web апликации,
 ADO .NET – 2000., Кпмбинација на ADO и RDS технплпгиите.

145

Вп рамките на пваа книга ппсебнп внимание ќе биде ппсветенп на ADO .NET технплпгијата, кпја е
прпизвпд на Microsoft и е неминпвнп врзана за .NET и за VS2010 развпјната пкплина. Оснпвните
пбележја и карактеристики на пваа технплпгија за пристап дп ппдатпци, се:
 Независен пд спфтверската платфпрма (Windows, Linux, Unix)
 Независнп пд избпрпт на прпграмскипт јазик (Visual Basic, Visual C + +, Visual C #, Delphi, ...)
 Овпзмпжува пристап дп ппдатпците фпрмирани вп различни СУБП (Microsoft Access,
Microsoft FoxPro, Paradox, Oracle, ...),
 Дпзвплува пристап дп лпкални извпри на ппдатпци, ппдатпци на интернет и извпри на
ппдатпци вп клиент-сервер архитектура,
 Внатрешен фпрмат за ппдатпците вп ADO .NET технплпгијата е XML (eXtensible Markup
Language), штп вп гплема мерка гп плеснува пристаппт дп извприте на ппдатпци пд
интернет,
 ADO .NET е стандард за сите јазици ппддржани вп Microsoft Visual Studio. NET (Microsoft
Visual Basic .NET, Microsoft Visual C++ .NET, Microsoft Visual C# .NET)

Вп архитектурата на ADO .NET технплпгијата јаснп се издвпјуваат следниве елементи:
 Извпр на ппдатпци (Data source) - кпнкретна, претхпднп прпектирана база на ппдатпци
 Врска сп ппдатпците (DataConnection) - впсппставува кпнекција дп кпнкретна базата на
ппдатпци,
 Адаптер на ппдатпци (DataAdapter) - ракпвпди сп извлекуваоетп на ппдатпци пд базата
на ппдатпци и пвпзмпжува извршуваое на на прпмени вп нејзе. Тпј е мпст ппмеду базата
на ппдатпци и мнпжествптп на ппдатпци (т.е. Објектпт DataSet), кпј ќе гп пппплни самп сп
бараните ппдатпци,
 Мнпжествп на ппдатпци (DataSet) – Кплекција на ппдатпци искппирани пд извприте на
ппдатпци кпи се чуваат вп пперативната мемприја на кпмпјутерпт. Акп станува збпр за
ппдатпци пд Access база на ппдатпци, тпа е збир на табели и нивните медусебни релации.
ADO .NET јаснп ги раздвпјува кпмппнентите кпи управуваат сп ппдатпците (DataProvider) пд пние
кпи ги чуваат ппдатпците (DataSet) и тпа е прикажанп вп шемата на аритектурата на ADO .NET
(слика 9.1).

Слика 9.1 Главни ADO .NET кпмппненти

146

2). ги нуди какп кпнтрпли.NET нуди ппддршка за рабпта сп различни типпви на бази на ппдатпци (меду другите и сп MS Access). и др. Ппкрај релаципни бази на ппдатпци. распплпжливи вп панелпт сп алатки (Toolbox) (слика 9. Дпкплку некпја пд пвие кпмппненти не е иницијалнп прикажана вп панелпт.2 Сите неппхпдни кпмппненти се напдаат вп панелпт сп алатки ппд менитп Data.NET кпмппненти.е.Кпга збпруваме за извпр на ппдатпци мпра да гп разгледаме ппширпкптп значеое на пвпј термин вп кпнтекст на развпјпт на спфтверски апликации. Извпр на ппдатпци е термин кпј се кпристи за билп кпја кплекција на ппдатпци единиците на надвпрешна мемприја. на тпј начин штп пснпвните ADO . Рабптнипт лист на Excel XML дпкумент Word дпкумент Секвенцијални и Бинарни датптеки. извпр на ппдатпци за една апликација. Слика 9. Поддршка на VS2010 за работа со бази на податоци Visual Studio . мпже да бидат и:      Не-релаципни бази на ппдатпци. : 147 . т. истата мпже да се дпдаде на ист начин какп и билп кпја друга кпнтрпла.

NET ADO. пптребнп е да се дпдаде извпр на ппдатпци вп прпектпт. Извпр на ппдатпци е. Сп тпчнп четири класи мпже да се направи речиси се штп е пптребнп при израбптка на еден апликативен прпграм кпј рабпти сп бази на ппдатпци. кпја ни пвпзмпжува рабпта сп бази на ппдатпци пд различни фпрмати. ADO . Ппддржани се различни фпрмати. кликнете на менитп на Data. вп зависнпст пд инсталираните драјвери на системпт. Најнапред. всушнпст.microsoft.NET Framework пкплината и технички е реализирана сп различни класи кпи ги енкапсулираат сите пптребни функципналнпсти.aspx?FamilyID=C6661372-8DBE-422B-8676C632D66C529C&displaylang=EN Упатство во шест чекори за работа со бази на податоци користејќи VS2010 Чекор 1 – додавање на извор на податоци во проектот Кпристејќи ги мпжнпстите кпи ни ги нуди VS 2010 развпјната пкплина.mdb дпстапна на следнава адреса: http://www. нп и ппкрај тпа речиси истите рабпти кпи се пднесуваат на ADO . Примерите кпи ќе ги разгледуваме кпристат MS Access база на ппдатпци. Какп пример ќе се кпристи бесплатната база на ппдатпци Northwind. а пптпа кликнете на менитп Add New Data Source. Претствува дел пд . 148 . без ниту една линија на кпд. За да гп кпмплетирате првипт чекпр. Функцијата на ADO .NET се применливи и при рабпта сп MS SQL Server. Сп десен клик билп каде на менитп Data се птвпра нпвп кпнтекстуалнп мени  Од кпнтекстуалнптп мени се пдбира ставката Choose Items и вп дијалпг прпзпрецпт кпј пптпа се ппјавува неппхпднп е да се селектираат кпмппнентите кпи недпстасуваат. линк дп база на ппдатпци кпја сакаме да ја кпристиме.NET најдпбрп мпже да се пбјасни преку примери.NET (ActiveX Data Object) е .com/downloads/en/details. ќе извршиме ппврзуваое сп базата на ппдатпци.NET технплпгија. нп сметајте дека секпгаш ппстпи ппддршка за Microsoft Access и SQL Server.

т. Data Source Configuration. Слика 9.3 Дефинираое на извпрпт на ппдатпци Чекор 2 – Дефинирање на врската до изворот на податоци во проектот Вп пвпј чекпр пптребнп е да дефинираме тип на ппдатпци и да впсппставиме врска дп базата на ппдатпци кпја сакаме да ја кпристиме.3).4 Дефинираое на врската дп извпрпт на ппдатпци вп VS2010 149 . Слика 9.н. пд кпј на првипт екран "Choose a Data Source Type" пптребнп е да се пдбере ппцијата Database и да се кликне на кппчетп Next. каде се бара да се пдбере мпделпт на база на ппдатпци се пдбира Dataset (слика 9.Сп пва се птвпра прпзпрец за кпнфигурација. И на следнипт прпзпрец. пп штп се птвпра Add Connection дијалпг прпзпрецпт (слика 9. Се кликнува на кппчетп NewConnection.4).

Слика 9. 150 . Пп пва дпвплнп е да се кликне кппчетп OK за да се прпдплжи ппнатаму. Оваа низа на чекпри при дефинираоетп на извпрпт на ппдатпци е прикажана на сликата 9. Вп дијалпг прпзпрецпт Change Data Source пптребнп е да се избере Microsoft Access Database File (слика 9. пптребнп е да се дефинира патеката дп базата на ппдатпци. Пп дефинираоетп на патеката дп базата на ппдатпци (впишувајќи ја рачнп патеката или дефинирајќи ја преку кппчетп Browse) вп сппдветнптп ппле. Чекор 3 – Дефинирање на изворот на податоци Вп следнипт чекпр се дефинира извпрпт на ппдатпци. иницијалнп мпже да се ппставен друг тип на бази на ппдатпци (најчестп MS SQL Server). Пп штп се птвпра дијалпг прпзпрецпт Change Data Source. се дефинираат и кприсничкптп име и лпзинка за пристап дп ппдатпците сместени вп нејзе. вп лпкалнипт директприум на VS 2010 прпектпт. речиси секпгаш прпграмерите (пспбенп пние кпи рабптат вп тим и заеднички пристапуваат дп истипт фајл). На прашаоетп за кппираое на базата на ппдатпци пд директприумпт вп кпј се напда. кпристејќи гп кппчетп Test Connection. Вп пвпј прпзпрец мпже и да се изврши тестираое на врската сп базата на ппдатпци. За да се направи тпа. пдгпвараат сп НЕ (No).Иакп вп рамките на пвпј прпзпрец. За да се изврши прпмена на типпт и да се избере друг тип на бази на ппдатпци (вп нашипт случај MS Access) пптребнп е да се клинке на кппчетп Change. а тпа се прави вп претхпднипт прпзпрец. Овпј прпзпрец (пп прпмената на типпт на база на ппдатпци пд MS SQL Server вп MS Access) дпбива ппинакпв изглед.5).6.5 Прпмена на типпт на извпрпт на ппдатпци Пп пдбираоетп на типпт на извпрпт на ппдатпци пптребнп е истипт да се специфицира. вп дијалпг прпзпрецпт каде треба да се дпдаде линк/врска дп базата на ппдатпци.

6 Дефинираое на извпрпт на ппдатпци вп VS2010 Чекор 4 –Снимање на врската Вп следнипт дијалпг прпзпрец ("Save connection string. Врската се снима вп фпрма на стринг кпј се нарекува Кпнекциски стринг..Слика 9.7) се нуди мпжнпст да се сними врската дп базата на ппдатпци вп ппсебен кпнфигурациски фајл вп прпектпт.." прикажан на сликата 9.7 Снимаое на врската дп базата на ппдатпци вп апликацијата 151 . Слика 9.

Чекор 5 – Избор на податоците

Вп следнипт чекпр, кпристејќи гп дијалпг прпзпрецпт ("Choose your database objects") се нуди
мпжнпст за избпр на една или ппвеќе табели сп кпи сакаме да рабптиме. Вп листите се напдаат
сите табели и SQL прашаоа (SQL query) дефинирани вп базата на ппдатпци (слика 9.8).

Слика 9.8 Избпр на ппдатпците

Чекор 6 – Приказ на податоците
На крајпт пстанува да се изврши визуелизација на ппдатпците пд пдбраната база на ппдатпци. За
пва ппстпјат ппвеќе начини, бидејќи, речиси секпја кпнтрпла нуди мпжнпст за вакпв приказ.
Кпга се вп прашаое табели пд базата, тпгаш најчестп се кпристи кпнтрплата DataGridView. Вп
прпзпрецпт на свпјства за пваа кпнтрпла кпристејќи гп нејзинптп свпјствп DataSource, мпже да се
ппврзете сп базата на ппдатпци, и за време на извршуваое на апликацијата да се прикажат
реални ппдатпци пд базата (слика 9.9).

Слика 9.9 Приказ на ппдатпците пд база вп вп една апликација

152

Ќе забележите истп така дека при дпдаваоетп на кпнтрплата DataGridView VS2010 автпматски
дпдал уште некплку кпнтрпли. Тпа се неппхпдните кпнтрпли за ADO .NET да ја заврши свпјата
рабпта.

Забележете дека кпнтрплата DataGridView ппседува заглавија (header) на кплпните.
Штп се случува акп кликнете врз некпе пд заглавијата??
Ппстпјат гплем брпј свпјства на кпнтрплата DataGridView кпи не треба да се прпграмираат
кпи нема да ги разгледуваме вп пваа книга

Програмски пристап до бази на податоци
При рабпта сп бази на ппдатпци .NET нуди гплемп кпличествп на гптпви класи за рабпта сп нив,
кпи се сместени вп два именски прпстпри:
 System.Data.SqlClient – мнпжествп на класи за рабпта сп Microsoft SQL Server
(SqlConnection, SqlCommand ...)
 System.Data.OleDb – мнпжествп на класи за рабпта сп пстанатите фпрмати на бази на
ппдатпци (MS Access, FoxPro, DBF и сл.) (OleDbConnection, OleDbCommand ...)
Некпј прпизвпдители на СУБП какп Oracle и MySql нудат сппствени драјвери за рабпта сп нив.
Иакп VS2010 ги нуди сите неппхпдни класи за рабпта сп бази на ппдатпци, неппхпднп е истите да
се упптребуваат на правилен начин, а тпа речиси секпгаш ппдразбира правилен редпслед вп
извршуваоетп на акциите.
Редпследпт на кпристеое на класите и креираоетп на пбјектите за рабпта сп MS Access Бази на
ппдатпци и прикажуваоетп на ппдатпците пд нив (т.е. при извршуваое на кпмандата SELECT) е
прикажан на дијагрампт на сликата 9.10.

Слика 9.10 Редпслед на кпристеое на класите и креираоетп на пбјектите

153

Секпј пд пвие чекпри и пбјекти ќе биде разгледан ппсебнп вп прпдплжение пп редпследпт на
нивнп креираое.

Конекција (ОleDbConnection)
При рабптата сп билп кпја база на ппдатпци неппхпднп е да се впсппстави врска/кпнекција сп
истата. Кпнекцијата дп една MS Access база на ппдатпци се дефинира преку следнипв кпд:
OleDbConnection conn = new OleDbConnection();

Конекциски стринг
Оснпвнптп свпјствп на кпнекцијата (т.е. пбјектпт пд типпт OleDbConnection) е стрингпт за
ппврзуваое сп базата, кпј гп има фпрматпт:
naziv param1=vrednost param1; naziv param2=vrednost param2;...
Параметрите и вреднпстите се пдделени сп сепаратпр „ ; “. Пример за кпнекциски стринг за
ппврзуваое сп MS Access база на ппдатпци е даден преку следнава кпманда:
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\VisualProgramming\Nwind.mdb;User id=Admin;Password=";

За да се кпристи кпнекцијата таа мпра да се птвпри. Тпа се прави сп ппмпш на нејзината Open()
метпда. Нп тпа се прави дури ппсле дефинираоетп на кпнекцискипт стринг.
conn.Open();

Команда (OleDbCommand)
Објектпт преку кпј ги задаваме SQL прашаоата дп базата на ппдатпци се нарекува кпманда.
Кпмандата секпгаш се извршува преку веќе дефинирана кпнекција.
Оснпвните свпјства на пбјектпт кпманда се:
 Connection –ја дефинира активната кпнекција дп базата, и
 CommandText – гп дефинира SQL прашаоетп

При рабпта сп MS Access бази на ппдатпци кпмандата се дефинира какп пбјект пд типпт
OleDbCommand, на следнипв начин:
OleDbCommand komanda = new OleDbCommand();
komanda.Connection = conn;
komanda.CommandText = "Select * FROM Customers";

154

Add("Text".Tables[0]. adapter. една Label кпнтрпла и еднп текст ппле вп кпе ќе се прикажуваат вреднпстите за кпличина на залиха за даден прпдукт пд Products табелата вп NorthWind базата на ппдатпци. "Discontinued"). Да се креира фпрма на кпја ќе биде ппставена една DataGridView кпнтрпла.Add("Checked". кпј врши пппплнуваое сп ппдатпци на мнпжествптп на ппдатпци. checkBox1. Ппседува еден значаен метпд. Приказ на податоците За приказ на ппдатпците вп DataGridView се кпристи нејзинптп DataSource свпјствп: dataGridView1.DataBindings.Fill(dataset). Тпа е метпдпт Fill(). dataset.Tables[0]. dataGridView1. textBox2.DataSource = dataset.Tables[0]. 155 .Множество на податоци (DataSet.Add("Text". Начинпт на кпј се кпристи адаптерпт вп случај на рабпта сп MS Access база на ппдатпци е дефиниран преку следнипв прпграмски сегмент: OleDbDataAdapter adapter = new OleDbDataAdapter(). DataTable table = new DataTable(). DataTable) Мнпжествптп на ппдатпци претставува мемприски прпстпр вп кпј се чуваат резултатите пд извршуваоетп на SQL прашаоетп. туку мпже билп кпја “сппдветна” кпнтрпла. dataset.DataBindings. За таа цел се кпристи свпјствптп DataBindings на кпнтрплите и негпвата Add метпда. Адаптер (OleDbDataAdapter) Овпј пбјект претставува врска ппмеду кпмандата и мнпжествптп на ппдатпци. adapter.Tables[0]. За приказ на ппдатпците не мпра секпгаш да се кпристи DataGridView кпнтрплата. вп Label кпнтрплата да се печати текст: “Набавете уште пд пвпј прпдукт”. "ProductName").DataBindings. Акп даден прпдукт гп има залиха вп ппмалку пд 5 парчиоа. DataSet dataset = new DataSet().DataSource = table. "UnitPrice"). Мпжеме да гп третираме какп матрица (или листа пд матрици) спставена(и) пд редпви и кплпни кпи се нарекуваат табели (Table). dataset. textBox1. DataSet нема никакпв префикс (ниту SQL ниту OleDB). штп значи дека мпжеме да гп третираме какп универзален мемприски прпстпр за чуваое на ппдатпци (кпи дури не мпра да пптекнуваат пд база на ппдатпци).SelectCommand = komanda.

Прилпг 1 156 .

157 .

Прилпг 2 Assembly Boolean Button Char CheckBox ComboBox Container DataColumn DataGrid DataGridDateTimePickerColumn DataGridTableStyle DataGridTextBoxColumn DataReader DataRow DataSet DataTable DateTime Dialog DialogResult Double Exception GroupBox HashTable ImageList Integer Label ListBox ListView MarshallByRefObject Mainmenu MenuItem MDI-Frame MDI-Sheet NumericUpDown Panel PictureBox RadioButton SDI-Form SqlCommand SqlCommandBuilder SqlConnection SqlDataAdapter StatusBar String StringBuilder TabControl TabPage TextBox ToolBar ToolBarButton Timer UserControl WindowsPrincipal asm bln btn ch cbx cmb ctr dcol dgrid dgdtpc dgts dgtbc dreader drow dset dtable date dialog dr dbl ex gbx htbl iml int lbl lbx lv rmt mm mi frame sheet nud pnl pbx rbtn form sqlcom sqlcomb sqlcon sqlda stb str strb tabctrl tabpage tbx tbr tbb tmr usr wpl 158 .

0. 2001 Microsoft Press.ISBN-13: 978-0-672-32990-6 [7] Microsoft C# Language Specifications. 2008 Pearson Education. Sams Teach Yourself Visual C#®2008 in 24 Hours: Complete Starter Kit. ISBN 0-7356-1448-2 159 .NET Developer's Handbook. 2010 Microsoft Press [3] BEN WATSON.0 How-To. and Jesse Liberty. 2010 O’Reilly. C# 4. 2002 SYBEX. The Definitive Reference. ISBN: 978-0-596-80095-6 [5] John Paul Mueller. ISBN-13: 978-0-672-33063-6 [4] Joseph Albahari and Ben Albahari. C# 4. Microsoft® Visual C#® 2010 Step by Step. Matthew Adams. 2010 SAMS Publisher. Programming C# 4. ISBN: 0-7821-4047-5 [6] James Foxall. Visual C# . Inc. ISBN: 9780-596-15983-2 [2] John Sharp.Библипграфија [1] Ian Griffiths.0 IN A NUTSHELL. Fourth Edition.