c# Primeri

Embed Size (px)

Citation preview

  • 8/16/2019 c# Primeri

    1/68

    Visoka škola strukovnih studija za informacione tehnologije ITS

    U ovom uvodnom delu ćemo Vas upoznati sa okruženjem alata Microsoft Visual Studio

    2008, odeljak za programiranje u programskom jeziku C#

     !a slici ispod "Slika: u.1# je prikazano glavno okruženje programa i na$in pravljenjanovog projekta%

     

    Slika u.1 - Pravljenje novog projekta

    &ao što je već napisano, na slici Slika u.1 možete videti na$in pravljenja novog projekta,

    ili možete pratiti sledeće korake%

    • 'tvorite (icrosoft Visual Studio )**+

    • Idite na File -> New -> Project ili pritisnite kominaciju tastera Ctrl + Shift + N

    • Sa leve strane "-roject T.pes# izaerite Visual C# -> Widows, te nakon toga sa

    desne strane "Templates# izaerite Widows For!s "licatio

    • U polju Name unesite željeno ime Vašeg projekta

    • U polju Location izaerite putanju gde želite sa$uvati skup projekata " solution#

    • Sa padajuće liste Solution izaerite Create New Solution "ukoliko pravite nov

    skup projekata# i ostavite štikliranu opciju Create directory for solution

    • -olje Solution Name će iti popunjeno imenom Vašeg projekta, te ukoliko ne

    želite da ime rešenja ude isto kao i ime projekta, sloodno unesite novo imerešenja

    • &liknite na dugme OK 

  • 8/16/2019 c# Primeri

    2/68

    Slika u.2 - Napravljen projekat i prikaz preimenovanja forme

     !a slici iznad "Slika u.2# se vidi kako izgleda program nakon pravljenja projekta Usredini Vam je prikazana Vaša forma koju ste napravili pravljenjem /indo0s 1orm

    2plikacije što ste izarali pri pravljenju samog projekta Sa leve strane Vam je prikazan

    Toolo3 odakle ćete irati kontrole koje planirate iskoristiti na svojoj formi 4a i dodalikontrolu na formu, potreno je da izaerete odgovarajuću i onda ju prevu$ete na formu

    &ao što je na slici prikazano "Slika u.2#, u svakom trenutku možete promeniti ime Vaše

    forme, ali je to najolje da uradite na samom po$etku ukoliko uopšte planirate menjati

    ime zato što ukoliko kasnije udete menjali ime, a neka druga forma ude povezana saVašom, postoji mogućnost da Visual Studio to neće doro uraditi Nao!ea$ %&o ije

    aslo& Va'e for!e ili ro(ra!a) %&o je sa!o i!e for!e re*o *oje( ete ristuati

    istoj i, e*e dru(e for!e) %&o i!e e s!e sadrati ra,!a* .sace/) Tako5e je itnoda pri promeni naziva forme na kraju imena ostane )cs "ekstenzija# &ada upišete novo

    ime forme, ukoliko želite zadržati to ime, pritisnite tipku ter, te ukoliko ne želite

     promeniti ime, pritisnite tipku sc . Escape) Ukoliko ste se odlu$ili promeniti ime,

     prikazaće Vam se dialog  kao na sledećoj slici "Slika u.# gde je potreno kliknuti na

    dugme 1es%

  • 8/16/2019 c# Primeri

    3/68

    Slika u. - Potvrda promene imena forme

    4a i promenili naslov forme, potreno je uklju$iti Properties !indo" preko menija

    View -> Proerties Widow ili pritiskom na taster F te naći svojstvo Te#t  i onda upisati

    novi naslov U ovom prozoru ćete videti mnogo svojstava forme "u ovom slu$aju#

    Tako5e, kada dodate nove komponente na formu, kliknite na onu $ija svojstva želite promeniti i opet otvorite Properties !indo" i videćete druga$ija podešavanja nego na

     podešavanjima forme

    Ukoliko želite preći u $ode %ie" trenutne forme, idite na meni View -> Code Tako5e,

    ukoliko se želite vratiti u &esign %ie" idite na meni View -> 3esi(er

    Tako5e što je itno napomenuti u uvodnom delu je da treate pogledati opcije Solution

     '#plorer 6a zato što će Vam pri izradi primera dosta toga iti pokazano da treate uraditi

     preko njega (Solution '#plorer-a) !jega ste već koristili kada ste menjali ime formeUkoliko ga niste imali pokrenutog, to možete uraditi ukoliko odete na View -> Solutio

    4lorer ili pritisnete kominaciju tastera Ctrl + "lt + 5

    U delu gde smo Vas upoznavali sa (icrosoft Visual Studio )**+ okruženjem, ovde ćemoVas upoznati sa akcijama dodavanja nove forme i klase u postojeći projekat "dodavanjenove forme 6 Slike u2.1#

    http://www.its.edu.rs/ITS-Visual-Studio-2008---Upoznavanje-sa-okruzenjem_893http://www.its.edu.rs/ITS-Visual-Studio-2008---Upoznavanje-sa-okruzenjem_893http://www.its.edu.rs/ITS-Visual-Studio-2008---Upoznavanje-sa-okruzenjem_893

  • 8/16/2019 c# Primeri

    4/68

    Slika u2.1 - Prikaz dodavanja nove forme

    &ao što je i prikazano na slici, novu formu možete dodati kada desnim klikom na

     projekat iz Solution '#plorer-a izaerete "dd -> Widows For!))) ili kad idete naProject -> "dd Widows For!))) i tada će Vam se prikazati prozor *dd Ne" +tem -ime,vaseg,projekta i jedino što ovde treate uraditi jeste da se uverite da je za kategoriju

    izarano %isual $ +tems a od tema da je izarano !indo"s orm &ada proverite da je

    sve uredno, jedino morate ime promeniti "napomena: ekstenzija .cs mora ostati na krajuimena# !ovu formu ćete kreirati klikom na dugme %6  'vim ste napravili novu formu

     !ovu klasu pravite na isti na$in kao i formu, samo idete na Project -> "dd Class)))

    Tako5e u imenu klase ekstenzija )cs mora ostati na kraju

    7adata*$ !apraviti /indo0s aplikaciju, koja će imati jednu lael kontrolu i jedan /utton -rilikom

     pritiska na dugme, otvara se message o3 u kojem je ispisana poruka korisniku Izgled

     prozora trea da ude kao na slici ispod (Slika 1.1)

  • 8/16/2019 c# Primeri

    5/68

     Slika 1.1- +zgled programa

    e'eje$Uz pomoć toolo36a, na predefinisanu formu, tj formu, koju u startu kreira samookruženje VS )**+, dodati jednu laelu i jedno dugme U 7-roperties7 prozoru, izmeniti

    svojstva date forme, laele i dugmeta, tako da izgled odgovara gornjoj slici &ada se sve

    to završi, prozor Solution 83plorer6a trea da izgleda kao na slici ispod "Slika 1.2#%

    Slika 1.2-+zgled Solution '#plorera

    &od za klasu For!9utto5a:el%

     pulic partial class 1orm9utton:ael % 1orm

      ;

       pulic 1orm9utton:ael"#

  • 8/16/2019 c# Primeri

    6/68

      ;

      Initialize

  • 8/16/2019 c# Primeri

    7/68

    Slika 1.2: +z0or u okviru Link*rea 'ditor-a

     !a kraju, prozor Solution 83plorer6a trea da izgleda kao na slici "Slika 1.#%

    Slika 1.: Solution '#plorer 

    U samom kodu trea uklju$iti prostor imena S.stem4iagnostics, zog poziva metode

    Start"# klase -rocess u okviru klase 1orm:ink:aela

  • 8/16/2019 c# Primeri

    8/68

    &od za klasu 1orm:ink:aela%

     pulic partial class 1orm:ink:aela % 1orm;

       pulic 1orm:ink:aela"#  ;  Initialize

    7adata*$

     !apraviti 0indo0s aplikaciju, koja će imati dve laele, dva te3t o36a i jedno dugme-rilikom njenog pokretanja, u te3t o36ovima trea da udu ispisane poruke korisniku,

    kao na sledećoj slici "Slika 1.1#%

    Slika 1.1: +zgled programa

    &ada korisnik unese svoje ime i prezime i klikne na dugme 7-rikaz podataka7, otvara semessage o3 sa porukom u oliku unetog imena i prezimena, kao na slici "Slika 1.2#%

  • 8/16/2019 c# Primeri

    9/68

    Slika 1.2: Prikaz podataka

    Isto tako, posle zatvaranja message o36a, potreno je da se automatski isprazni sadržaj

    te3t o36ova

    e'eje$Da unos te3t o36ova na predefinisanu formu, koristi se toolo3, u okviru kojeg se nalazi

    i Te3t9o3 kontrola 4uplim klikom na datu formu u 4esign modu, dodaje se akcija za

    inicijalno pokretanje osnovne forme U okviru generisanog loka, upisuje se kod za

    akciju ispisa po$etnih poruka korisniku u te3t o36ovima -rozor Solution 83plorer6atrea da izgleda kao na slici "Slika 1.#%

    Slika 1.: Solution '#plorer 

  • 8/16/2019 c# Primeri

    10/68

    &od za klasu 1ormTe3t9o3&ontrola%

     pulic partial class 1ormTe3t9o3&ontrola % 1orm

    ;   pulic 1ormTe3t9o3&ontrola"#

      ;  Initialize  ?? akcija, koja se izvrsava klikom na dugme

       private void utton@A

    >

    7adata*$

     !apraviti 0indo0s aplikaciju, koja ima jednu osnovnu formu sa dve laele, dva te3t o36a i jednim dugmetom U te3t o36ove korisnik trea da unese dva roja tipa BdouleB, a

    klikom na dugme otvara se message o3 u kojem je ispisan zir unetih rojeva Izgled

    trea da ude kao na slici "Slika 1.1#%

  • 8/16/2019 c# Primeri

    11/68

    Slika 1.1: +zgled programa

    Ukoliko korisnik unese neku pogrešnu vrednost, koja se ne može koristiti u operaciji

    sairanja, posle klika na dugme, potreno je da aplikacija oavesti korisnika da je unesen

     pogrešan tip podatka To ilustruje sledeća slika "Slika 1.2#%

    Slika 1.2: 0avetenje o nastanku greke

    e'eje$

    4a i se izeglo BpucanjeB aplikacije u toku rada zog toga što je korisnik uneo pogrešantip podatka u te3t o3, potreno je da se kod za akciju konvertovanja podataka iz te3t

     o36a u tip BstringB, kao i sairanje tih podataka, smesti u jedan Btr;B lok U BcatchB loku

    regulisano je pokretanje massage o36a sa odgovarajućom porukom Izgled Solution83plorer6a trea da ude kao na sledećoj slici "Slika 1.#%

  • 8/16/2019 c# Primeri

    12/68

    Slika 1.: Solution '#plorer 

    &od za dugme BIzracunaj zirB%

    ?? upotrea tr. 6 catch lokova u cilju oezedjivanja

    ?? povratne informacije u slucaju greske, kao i onemogucavanja?? da zog pojave greske u unosu podataka od strane korisnika

    ?? aplikacija BpukneB u sred njenog izvrsavanja

    tr.;

      doule roj@ C

  • 8/16/2019 c# Primeri

    13/68

    se automatski u te3t o36u ispiše poruka o tome koju je stavku korisnik izarao To

    ilustruje sledeća slika "Slika 1.1#%

    Slika 1.1: +zgled programa

    e'eje$Da dodavanje como o36a na formu, koristi se toolo3 -otreno je oratiti pažnju na

    na$in dodavanja stavki u como o3 &likom na strelicu u gornjem desnom uglu como

     o36a u design modu, otvara se meni

  • 8/16/2019 c# Primeri

    14/68

    Slika 1.2: &odavanje stavki u $om0o/o#

    Izgled Solution 83plorera trea da ude kao na slici ispod "Slika 1.#%

    Slika 1.: Solution '#plorer 

  • 8/16/2019 c# Primeri

    15/68

    2kcija za Selectedde4Cha(ed doga5aj, dodaje se dvostrukim klikom na como9o3 u

    design modu Ta akcija je opisana sledećim kodom%

     private void como9o3IzorASelectedInde3

  • 8/16/2019 c# Primeri

    16/68

    Slika 1.2: Solution '#plorer 

    &od za dugmad 7Sacuvaj7, 7 private void utton

    7adata*$

     !apraviti 0indo0s aplikaciju, koja će imati jednu formu sa H check o36a, jedno dugme i jedan te3t o3 "multiline# &likom na dugme, u te3t o3u se ispisuje poruka odgovarajućesadržine, kao na slici ispod "Slika 1.1#%

  • 8/16/2019 c# Primeri

    17/68

    Slika 1.1: +zgled programa

    -otvr5ivanjem check o36a 7Sakri porudzinu7, te3t o3 trea da postane nevidljiv za

    korisnika To ilustruje sledeća slika "Slika 1.2#%

    Slika 1.2: Sakrivanje te#t 0o#-a

    e'eje$

  • 8/16/2019 c# Primeri

    18/68

    Slika 1.: +z0or 3ultiLine Te#t/o#-a

    -rozor Solution 83plorer6a trea da izgleda kao na sledećoj slici "Slika 1.4#%

    Slika 1.4: Solution '#plorer 

    &od za dugme B-osaljiB%

    ?? poziv metode

  • 8/16/2019 c# Primeri

    19/68

    &od za oradu doga5aja Chec*edCha(ed za check9o3 7Sakri porudzinu7%

    if  "te3t9o3@Visile CC false#

      te3t9o3@Visile C true=else

      te3t9o3@Visile C false=

    7adata*$

     !apraviti 0indo0s aplikaciju, koja će imati jednu formu sa tri radio dugmeta, smeštenih

    u jedan group o3, zatim jedno dugme i jedan te3t o3 "multiline#" Slika 1.1#%

    Slika 1.1: +zgled programa

    -ritiskom na dugme 7Fezervisi7, u te3t o36u se ispisuje odgovarajuća poruka korisniku

    Samo jedno radio dugme u jednom trenutku može iti selektovano

    e'eje$

    Fadio dugmad se dodaju na formu direktnim prevla$enjem iz toolo36a -re toga,neophodno je da se na formu postavi @rou9o4 kontrola, a tek onda u nju da se smeste

    radio dugmad roup9o3 se dodaje prevla$enjem iz toolo36a, i to iz grupe

    7Cotaiers7 "Slika 1.2#%

  • 8/16/2019 c# Primeri

    20/68

    Slika 1.2: 3esto 5roup/o#-a u okviru Tool0o#-a

    -rozor Solution 83plorer6a trea da izgleda kao na narednoj slici "Slika 1.#%

    Slika 1.: Solution '#plorer 

    &od za dugme 7Fezervisi7%

  • 8/16/2019 c# Primeri

    21/68

     private void uttonFezervisiA

  • 8/16/2019 c# Primeri

    22/68

    &od kontrole za vreme, potreno je da korisnik unosi datum pomoću uAdow strelica

    &likom na dugme 7Fezervacija7 u richTe3t o36u se ispisuje odgovarajuća poruka

    korisniku "Slika 1.2#%

    Slika 1.2: +spis o0avetenja za korisnika

    e'eje$

    4ateTime-icker kontrola se dodaje na formu prevla$enjem iz toolo36a -otreno je da

    se kod kontrole za vreme, u 7-roperties7 prozoru, u design modu, svojstvo 7For!at7

     postavi na 7=i!e7, a svojstvo 7ShowB3ow7 postavi na vrednost 7=rue7 -rozor

    Solution 83plorer6a trea da izgleda kao na slici "Slika 1.#%

    Slika 1.: Solution '#plorer 

  • 8/16/2019 c# Primeri

    23/68

    &od za dugme 7Fezervacija7%

     private void uttonFezervacijaA

  • 8/16/2019 c# Primeri

    24/68

    Slika 1.1: +zgled programa

    &ada korisnik klikne na 7'&7 u 3essage/o#6u, trea da se pojavi novi 3essage/o# sa

     porukom, koja govori od kog do kog ta$no datuma je izarani opseg To je prikazano nasledecoj slici (Slika 1.2)%

  • 8/16/2019 c# Primeri

    25/68

      Slika 1.2: da0ir opsega 

    Isto tako, potreno je oezediti i da korisnik ude oavešten odgovarajućom porukom, u

    slucaju da uopšte ne izaere opseg, a pritisne dugme 7'daerite termin7

    e'eje$4odavanje 3ont6$alendar  kontrole na formu, vrši se u  &esign 3od-u, prevla$enjem iz

    Tool0o#6a U  Properties prozoru za 3ont6$alendar  kontrolu trea odrediti maksimalan

     roj dana, koji se mogu selektovati korišćenjem ove kontrole Da tu svrhu se koristisvojstvo 3a#Selection$ount  -rozor Solution '#plorer 6a trea da izgleda kao na sledećojslici (Slika 1.)%

     

  • 8/16/2019 c# Primeri

    26/68

    Slika 1.: +zgled Solution '#plprera

     Kod za dugme 'Odaberite termin':

    ??ojektu klase TimeSpan dodeljuje se izarani roj dana

    TimeSpan ts C month?? poruka o izaranom roju dana

    (essage9o3Sho0"7Fezervistali ste usluge u trajanju od 7 Ets4a.sToString"# E 7dana7,

    7Fezervacija7#=?? poruka o izaranim datumima pocetka i kraja rezervacije

    (essage9o3Sho0"7Vasa rezervacija pocinje 7 E

    month

    7adata*$

     !apraviti 0indo0s aplikaciju, koja će na osnovnoj formi imati jedno dugme i jedan te3t o3 "multiline# &likom na dugme, trea da se otvori message o3 sa Mes?!o?

  • 8/16/2019 c# Primeri

    27/68

    Slika 1.1: +zgled programa

    -osle klika na neku od ponu5enih opcija, potreno je da se u te3t o36u pojavi

    odgovarajuća poruka "Slika 1.2#%

    Slika 1.2: +spis odgovaraju7e poruke

    e'eje$

    Da rešavanje ovog zadatka trea koristiti metodu Messa(e9o4)Show./, uz ta$no

    odre5ivanje naslova message o36a, teksta poruke, dugmadi i ikone za message o3&orišćena metoda vraća vrednost tipa 4ialogFesult Tako, na primer, ako je vraćena

    vrednost 4ialogFesult'&, to onda zna$i da je korisnik kliknuo dugme '& Izgled

    Solution 83plorer6a "Slika 1.#%

  • 8/16/2019 c# Primeri

    28/68

    Slika 1.: +zgled Solution '#plorer-a

    &od za dugme 7'tvorite (essage9o37%

    ?? odredjivanje naslova, poruke, dugmadi i ikone za (essage9o3string poruka C 7-ritisnite neko od ovih dugmadi7=

    string naslov C 7!aslovna linija 4ijaloga za poruke7=

    (essage9o39uttons uttons C (essage9o39uttonsMes!o

  • 8/16/2019 c# Primeri

    29/68

    Slika 1.1: +zgled programa

    e'eje$

    Track9ar kontrola se unosi na formu direktnim prenošenjem iz toolo36a u design modu

    U 7-roperties7 prozoru za Tack9ar trea podesiti svojstva Mii!u! i Ma4i!u!,

    kojima se odre5uju minimalna i maksimalna vrednost na Track9ar6u Svojstvo

    =ic*Freuec; odre5uje roj podela kliza$a Solution 83plorer trea da ima sledećiizgled "Slika 1.2#%

    Slika 1.2: Solution '#plorer 

    -ri pomeranju kliza$a generiše se Scroll doga5aj Taj doga5aj je ora5en sledećim

    kodom%

     private void track9ar@AScroll"oject sender, 8vent2rgs e#;

      ?? track9ar@Value predstavlja tekucu vrednost klizaca

      te3t9o3@Te3t C track9ar@ValueToString"#=>

  • 8/16/2019 c# Primeri

    30/68

    7adata*$

     !apraviti 0indo0s aplikaciju, koja će imati jedan -icture9o3 i jedno dugme -ri

     pokretanju aplikacije, slika u picture o36u neće iti vidljiva za korisnika "Slika 1.1#%

    Slika 1.1: +zgled programa

    Slika u picture o36u postaje vidljiva za korisnika, tek posle pritiska na dugme 7-rikazi

    sliku7 "Slika 1.2#%

  • 8/16/2019 c# Primeri

    31/68

    Slika 1.2: +zgled programa posle klika na dugme 8Prikazi sliku8 

    e'eje$

    -icture9o3 kontrola se dodaje na formu direktnim prevla$enjem iz toolo36a u designmodu &likom na strelicu u desnom gornjem uglu -icture9o36a u design modu, otvara se

     poseni meni Picture9o4 =as*s U opciji Si,e Mode izarati Stretch !a(e &likom naopciju Choose !a(e otvara se prozor Select esource, u kojem se oavlja izor slike,

    koja će iti prikazana u -icture9o36u "Slika 1.#%

    Slika 1.: +z0or slike u design modu

    -rozor Select esource se otvara i ako se u 7-roperties7 prozoru za -icture9o3 direktno

     podešava svojstvo !a(e S ozirom da je zahtev zadatka da slika na startu ne ude

    vidljiva za korisnika, potreno je da se svojstvo Visi:le postavi na False Solutione3plorer trea da izgleda kao na sledećoj slici "Slika 1.4#%

  • 8/16/2019 c# Primeri

    32/68

    Slika 1.4: Solution '#plorer 

    &od za dugme 7-rikazi sliku7%

     private void utton@A

  • 8/16/2019 c# Primeri

    33/68

    Slika 1.1: +zgled programa

    e'eje$

    Image:ist komponenta se dodaje na formu direktnim prevla$enjem iz toolo36a u designmodu 'na neće iti vidljiva na formi, već će se pojaviti odgovarajuća ikonica ispod

    forme u design modu &likom na strelicu u gornjem desnom uglu iznad te ikonice, otvara

    se meni !a(e5ist =as*s "Slika 1.2#%

    Slika 1.2: +mageList komponenta u design modu

    &likom na opciju Choose i!a(es, otvara se prozor !a(es Collectio ditor

    &orišćenjem opcija u tom prozoru, vrši se dodavanje slika u Image:ist, ili risanje slikaiz kolekcije -rozor Solution 83plorer6a trea da ima sledeći izgled "Slika 1.#%

  • 8/16/2019 c# Primeri

    34/68

    Slika 1.: Solution '#plorer 

    &od za klasu 1ormImage:ist%

    ?? pomocna promenljiva pulic int rojac C @=

     

     pulic 1ormImage:ist"#;

      Initialize

  • 8/16/2019 c# Primeri

    35/68

    Slika 1.1: +zgled programa

    e'eje$

    Timer komponenta se dodaje na formu prevla$enjem iz toolo36a u design modu 'na

    neće iti vidljiva na formi, već će se ispod forme, u design modu, pojaviti odgovarajuća

    ikonica 4uplim klikom na ikonicu Timer6a omogućava se generisanje =i!er)=ic*  doga5aja u ravnomernim vremenskim intervalima -re toga, potreno je duplim klikom

    na formu i dodavanjem ti!er)Start./ metode, omogućiti da se timer pokrene u momentu

    startovanja forme -rozor Solution 83plorer6a trea da izgleda kao na slici "Slika 1.2#%

    Slika 1.2: Solution '#plorer 

    &od za klasu 1ormTimer%

     pulic 1ormTimer"#

    ;

      Initialize

  • 8/16/2019 c# Primeri

    36/68

     private void timer@ATick"oject sender, 8vent2rgs e#

    ;  ?? upis trenutnog vremena u laelu

      laelVremeTe3t C 4ateTime!o0ToShortTimeString"#=

    >

    7adata*$

     !apraviti 0indo0s aplikaciju, koja će imati dva te3t o36a i jednu

  • 8/16/2019 c# Primeri

    37/68

    Slika 1.2: +zgled $onte#t3enuStrip kontrole u design modu

     !eophodno je, na kraju, vezati

  • 8/16/2019 c# Primeri

    38/68

    Slika 1.: Solution '#plorer 

    &od za klasu 1orm?? klik na opciju :evo4esno

     private void levo4esnoToolStrip(enuItemA

    7adata*$ !apraviti 0indo0s aplikaciju, koja će imati H dugmeta &likom na svako pojedina$no

    dugme startovaće se posena aplikacija "Slika 1.1#%

  • 8/16/2019 c# Primeri

    39/68

    Slika 1.1: +zgled programa

    4ugme 7StartInfo7 trea da primeni klasu -rocessStartInfo, i to tako sto će startovati

    Internet 83plorer u prozoru normalne veli$ine i sa po$etnom 0e stranomhttp%??000itsedurs?

    e'eje$

    -otreno je, na samom po$etku, uklju$iti prostor imena S;ste!)3ia(ostics, jer njemu

     pripada klasa -rocess &od sva H dugmeta primenjuje se metoda Process)Start./) !a posean na$in se realizuje upotrea ProcessStartfo klase, jer ona služi za

    specificiranje vrednosti, koje se koriste prilikom startovanja procesa -rozor Solution

    83plorer6a trea da izgleda kao na slici "Slika 1.2#%

    Slika 1.2: Solution '#plorer 

    &od za klasu 1orm-rocess%

     pulic 1orm-rocess"#

    ;  Initialize

  • 8/16/2019 c# Primeri

    40/68

    ;

      ?? pokretanje e3cel6a  -rocessStart"7e3cele3e7#=

    >

     private void uttonStartInfoA

  • 8/16/2019 c# Primeri

    41/68

    Slika 1.2: +zgled programa posle klika na dugme 8Novi automo0il8 

    &ada korisnik unese marku automoila u te3t9o3 i klikne na dugme 7Unesi7, u

    FichTe3t9o36u se prikaže prvi automoil koji je unesen !akon toga, te3t9o3 i dugme

    7Unesi7 ponovo postaju onemogućeni za korisnika "Slika 1.#%

  • 8/16/2019 c# Primeri

    42/68

    Slika 1.: +zgled programa posle klika na dugme 89nesi8 

    &orisniku je omogućeno da dodaje nove automoile istim postupkom "Slika 1.4#%

  • 8/16/2019 c# Primeri

    43/68

    Slika 1.4: +zgled programa posle dodavanja nekoliko automo0ila u listu

    'avezno je korišćenje klase 2utomoil za instanciranje pojedina$nih automoila

    &likom na dugme 7%:risi listu7 lista automoila se riše, kao i sadržaj FichTe3t9o36a

    e'eje$Da rešavanje ovog zadatka koristi se klasa "rra;5ist Iz tog razloga neophodno je, u

    startu, uklju$iti prostor imena S;ste!)Collectios &lasa 2utomoil trea da sadrži samo

     parametarski konstruktor, kojim se dodeljuje vrednost atriutu !ar*a, i metodu4aj(arku"#, koja vraća vrednost tog atriuta Solution 83plorer trea da ima sledeći

    izgled "Slika 1.#%

    Slika 1.: Solution '#plorer 

    &od za klasu For!"uto!o:ili%

    ??4eklaracija i instanciranje gloalne promenjive liste automoila

    2rra.:ist lista2utomoila C ne0 2rra.:ist"#=

    ??&onstruktor forme pulic 1orm2utomoili"#

    ;

      Initialize

  • 8/16/2019 c# Primeri

    44/68

    ;

      ??&reiranje ojekta tipa automoil i dodeljivanje marke kroz parametarski konstruktor   2utomoil a C ne0 2utomoil"te3t9o3!oviTe3t#=

      ??4odavanje kreiranog automoila u listu

      lista2utomoila2dd"a#=

      ??Ispis automoila pomocu njegove metode 4aj(arku"#  richTe3t9o3@2ppendTe3t"lista2utomoilaInde3'f"a#E@E7 7 Ea4aj(arku"#E7 Jn7#=

      ??'nemogucavanje odgovarajucih kontrola

      te3t9o3!ovi8naled C false=  uttonUnesi8naled C false=

    >

     private void utton'risiA

  • 8/16/2019 c# Primeri

    45/68

    Slika 1.2: +zgled forme orm9nosNovogStudenta

  • 8/16/2019 c# Primeri

    46/68

    Slika 1.4: +spisivanje podataka u list/o# forme ormStudenti

     !a ovaj na$in moguće je dodati podatke o više studenata u list9o3 forme 1ormStudenti

    -ritiskom na dugme 7'risi studenta7 rišu se podaci o selektovanom studentu

    -ritiskom na dugme 7'risi sve studente7 rišu se svi podaci iz list9o36a

    e'eje$

    -otreno je da forma 1ormUnos!ovogStudenta ima atriut tipa Student !aravno, da i

    ova forma mogla da pristupi atriutima klase Student, trea kreirati odgovarajući

    roert; za taj njen atriut !a ovaj na$in, oeze5uje se kreiranje ojekta klase Student

    svaki put, kada se pokrene forma 1ormUnos!ovogStudenta 'vaj ojekat će sadržati sve podatke, koje trea prikazati u list9o36u forme 1ormStudenti Solution 83plorer trea da

    ima sledeći izgled "Slika 1.#%

  • 8/16/2019 c# Primeri

    47/68

    Slika 1.: +zgled Solution '#plorer-a

    &od za klasu orm9nosNovogStudenta%

    ?? deklarisanje privatnog atriuta tipa Student

     private Student student@=

    ?? podrazumevani konstruktor  pulic 1ormUnos!ovogStudenta"#

    ;  Initialize

  • 8/16/2019 c# Primeri

    48/68

  • 8/16/2019 c# Primeri

    49/68

    Tip% =oolStriStatus5a:el, !ame% toolStriStatus5a:el2,

    2utoSize% False, /idth% DE0DG

    • =i!er

    o  !ame% ti!erD, 8naled% =rue, Interval% D000

    • For!

    o  !ame% For!D, Te3t% Prote*lo i te*uce &re!e, 2utoScale(ode% Fot,Size% HI8 2JH

    e'eje$

     !apraviti /indo0s 1ormu kao na slici "Slika 2;.1# iz postavke zadatka i koristitikomponente i svojstva navedene u listi iznad -otreno je dodati gloalnu promenljivu

    oceto tipa 3ate=i!e To ćete uraditi ukoliko dopišete 3ate=i!e oceto odmah

    iznad osnovnog konstruktora kojeg Vam je VS )**+ automatski dodao "Pulic For!D./#

    &od za 1orm :oad handler " *kciju za orm Load dodajete duplim klikom na naslovnutraku forme#%

     pocetno C 4ateTime!o0=

    &od za timer@ kontrolu, Tick event "akciju za Tick event timer1 kontrole dodajete duplik

    klikom na kontrolu sa forme#%

    toolStripStatus:ael)Te3t C 7Trenutno% 7 E 4ateTime!o0To:ongTimeString"#=TimeSpan proteklo C ne0 TimeSpan"#=

     proteklo C 4ateTime!o0 6 pocetno=

    toolStripStatus:ael@Te3t C 7-roteklo% 7 E protekloLoursToString"#

    E7%7Eproteklo(inutesToString"#E7%7EprotekloSecondsToString"#=

    7adata*$

     !apisati program u jeziku

  • 8/16/2019 c# Primeri

    50/68

    Slika 21.1 - izgled programa

    S&ojst&a *o!oeti "svojstva koja nisu navedena u listi ispod su ostavljena kao

     podrazumevana svojstva koje napravi VS )**+#%

    • We:9rowser

    o  !ame% w:9rowser, 2nchor% =o? 9otto!? 5eft? i(ht, :ocation% 0 D0I,

    (inimumSize% 20 20, Size% EJD HE

    • 9utto

    o  !ame% :uttoNa,ad, :ocaton% D2D2, Te3t% Na,ad, Size% GE 2H

    o  !ame% :uttoNared, :ocaton% IHD2, Te3t% Nared, Size% GE 2H

    o  !ame% :uttoSta!aj, :ocaton% DGD2, Te3t% Sta!aj, Size% GE 2H

    o  !ame% :uttoNa&i(acija, :ocaton% DEJ J8, Te3t% Na&i(acija, Size% IH

    2H

    o  !ame% :utto@!ail, :ocauton% G 20, Te3t% @!ail, Size% DH2 2Ho  !ame% :uttoP(!ail, :ocauton% G EG, Te3t% Poui @!ail, Size% DH2

    2H

    o  !ame% :uttots, :ocauton% G 20, Te3t% =S, Size% DH2 2H

    o  !ame% :uttoPits, :ocauton% G EG, Te3t% Poui =S, Size% DH2 2H

    o  !ame% :t%6 , :ocation% E8 ED, Te3t% %6 , Size% GE 2H, 4ialogFesult% 

    %6 

    • =e4t9o4

  • 8/16/2019 c# Primeri

    51/68

    o  !ame% edtNa&i(acija, :ocation% D2 G0, Size% DH8 20

    o  !ame% edtSifra, :ocation% D2 2E, Size% DG2 20

    • 5a:el

    o  !ame% l:lSifra, 2utoSize% =rue, :ocation% 20 I, Size% D DH, Te3t%

    Besite sifru ,a ristu Mailu$

    For!o  !ame% fr!@la&a, 2utoScale(ode% Fot, (inimumSize% E80 E00, Size%

    E80 E00, Start-osition% CeterScree, Te3t% We:Mail

    o  !ame% fr!5o(o&aje, 2utoScale(ode% Fot, (inimumSize% 20I DDG,

    (a3imumSize% 20I DDG, Size% 20I DDG, Start-osition% CeterParet,

    Te3t% 5o(o&aje, Top(ost% =rue, 2ccept9utton% :t%6 

    e'eje$

     !apraviti /indo0s 1ormu kao na slici "Slika 21.1# iz postavke zadatka !akon toga,napraviti još jednu formu pod imenom fr!5o(o&aje kao na slici "Slika: 21.2# "!a oe

    forme koristiti komponente i svojstva navedene u listi iznad#

    Slika 21.2 - +zgled forme frmogo!an"e

    -otreno je dodati gloalnu promenljivu lo( koja je tipa fr!5o(o&aje To ćete uraditi

    ukoliko dopišete u:lic fr!5o(o&aje lo( odmah iznad osnovnog konstruktora kojeg

    Vam je VS )**+ automatski dodao "Pulic fr!@la&a./# te u glavni kostruktor dodati jednu liniju koda kojom ćete povezati formu fr!5o(o&aje za promenljivu lo( tako da

    glavni konstruktor forme fr!@la&a trea izgledati ovako%

    Initialize

  • 8/16/2019 c# Primeri

    52/68

    &od za utton!apred dugme,

  • 8/16/2019 c# Primeri

    53/68

      >

      catch "83ception#  ;

      (essage9o3Sho0"7!ije moguce popuniti polja7, 7reska7,

    (essage9o39uttons'&, (essage9o3Icon8rror#=

      >  >

      >

      else (essage9o3Sho0"7!eispravna Sifra7#=>

    &od za utton-its dugme,

      >

      >

      else (essage9o3Sho0"7!eispravna Sifra7#=>

    &od za edt!avigacija tekst polje, &e.-ress event "akciju za te odete u 'vents

    deo Properties prozora i uradite dupli klik na

  • 8/16/2019 c# Primeri

    54/68

    if  "e&e.

  • 8/16/2019 c# Primeri

    55/68

    Slika 1.1: +zgled forme ormaProgram

    'ezediti pokretanje programa !otepad i -aint iz como9o36a preko dugmeta u

    ro(ra! 'ezediti sho0?hide opciju za group9o3 Fun program preko check9o36aShow ro(ra! actio 'ezediti risanje sadržaja te3t9o36ova Pro(ra! a!e i

    Pro(ra! descritio preko dugmeta Clear Uaciti sledeći meni%  1ile 6 'pen, Save, 83it

      8dit 6 Te3t, 1ont, 'ptions  Vie0 6 (essage

      Lelp 6 2out

    Uaciti 1esNoCacel (essage9o3 sa informacionom ikonom preko menijaViewAMessa(e, kao na slici "Slika 1.2#%

    Slika 1.2: ?esNo$ancel 3essage/o#

    Uaciti novu formu For!a=e4t sa rasporedom kontrola kao na slici "Slika 1.# i povezati je sa glavnom formom preko opcije u meniju ditA=e4t%

  • 8/16/2019 c# Primeri

    56/68

    Slika 1.: +zgled forme ormaTe#t 

    'ezediti u glavnoj formi prikaz prenetog teksta iz forme 1ormaTe3t u te3t9o36ove naglavnoj formi 6 -rogram name i -rogram 4escription 'ezediti izlazak iz aplikacije

     preko opcije u meniju FileA4it uz potvrdu korisnika o izlasku "Slika 1.4#%

  • 8/16/2019 c# Primeri

    57/68

    Slika 1.4: 9potre0a opcije iz menija ile@'#it 

    e'eje$

    4odavanje menija na formu oavlja se direktnim prevla$enjem MeuStri kontrole iz

    tool9o36a roup9o3 u ro(ra! na startu aplikacije trea da ude nevidljiv za

    korisnika To se postiže podešavanjem u prozoru -roperties u design modu za datugroup9o3 kontrolu, gde se opcija Visi:le postavlja na False -okretanje forme

    1ormaTe3t se ostvaruje preko kreiranja ojekta tipa 1ormaTe3t u okviru akcije,

    definisane za klik na opciju menija ditA=e4t -renos te3ta iz te3t9o36ova ostvaruje se uzupotreu propert.6ja, definisanih za te3t9o36ove forme 1ormaTe3t -rozor Solution

    83plorer6a trea da izgleda kao na slici "Slika 1.#%

  • 8/16/2019 c# Primeri

    58/68

    Slika 1.: Solution '#plorer 

    &od za klasu For!aPro(ra!%

     pulic 1orma-rogram"#

    ;

      Initialize

  • 8/16/2019 c# Primeri

    59/68

      >

      if  "como9o3FunSelectedItemToString"#8Xuals"7!otepad7##  ;

      -rocessStart"7notepade3e7#=

      >

      else if  "como9o3FunSelectedItemToString"#8Xuals"7-aint7##  ;

      -rocessStart"7mspainte3e7#=

      >>

    ?? klik na check9o3

     private void check9o3Sho0A  else group9o3FunVisile C true=

    >?? klik na dugme

  • 8/16/2019 c# Primeri

    60/68

    Slika 2.1 - +zgled programa

    S&ojst&a *o!oeti "svojstva koja nisu navedena u listi ispod su ostavljena kao

     podrazumevana svojstva koje napravi VS )**+#$

    • 9utto

    o  prvo dugme 6 !ame% :uttoD, Te3t% "rra;5ist

    o drugo dugme 6 !ame% :utto2, Te3t% Kueue

    o treće dugme 6 !ame% :uttoH, Te3t% Stac*s

    o $etvrto dugme 6 !ame% :utto, Te3t% Lash

    • ich=e4t9o4

    o  !ame% rich=e4t9o4D

    • For!

    o  !ame% For!D, Te3t% ad sa *ole*cija!a .collectios/, Size% E08 28I,

    Start-osition% CeterScree

    e'eje$ !apraviti /indo0s formu kao na slici iz postavke zadatka "Slika 2.1# i koristiti

    komponente i svojstva komponenti navedene u listi iznad -otreno je u Prostor imena 

    dodati ilioteku za kolekcije, odnosno, kada odete u kod svoje forme "%ie" - A

    $ode#, na vrhu je potreno dodati sledeće% usi( S;ste!)Collectios !akon završetkadizajna, Solution '#plorer (%ie" - A Solution '#plorer Ctrl # $lt #  ) i treao izgledati

    kao na slici ispod "Slika 2.2#

  • 8/16/2019 c# Primeri

    61/68

    Slika 2.2 - +zgled Solution '#plorera

    &od za prvo dugme ""rra;5ist# " *kciju za dugme dodajete duplim klikom na dugme u &esign modu#%

    2rra.:ist al C ne0 2rra.:ist"#= ?? instanciranje al ojekta

    al2dd"@#= ?? dodavanje stavke u listu

    al2dd"7ITS7#=

    al2dd")HYZ#=alFemove2t"*#= ?? risanje stavke iz liste na odredjenom indeksu

    I8numerator  moj8numerator C alet8numerator"#= ??daje mogucnost kretanju kroz listu

    0hile "moj8numerator(ove!e3t"## ?? na svakom koraku, idi na sledeci clan liste;

      ?? trenutni clan liste koji se oradjuje dodaj u richTe3t9o3  richTe3t9o3@2ppendTe3t"moj8numerator

  • 8/16/2019 c# Primeri

    62/68

    ;

      ?? trenutni clan reda koji se oradjuje dodaj u richTe3t9o3  richTe3t9o3@2ppendTe3t"moj8numerator

  • 8/16/2019 c# Primeri

    63/68

    I4ictionar.8numerator  moj8numerator C taelaet8numerator"#=

    0hile "moj8numerator(ove!e3t"## ?? na svakom koraku, idi na sledeci clan hash taele

    ;

      ??trenutni clan hash taele koji se oradjuje dodaj u richTe3t9o3

      richTe3t9o3@2ppendTe3t"moj8numerator&e.ToString"# E 766667 Emoj8numeratorValueToString"# E 7Jn7#=

    >

    7adata*$

     !apraviti jednostavnu 0indo0s aplikaciju, koja će na osnovnoj formi imati samo dvadugmeta "Slika 1.1#%

    Slika 1.1: +zgled programa

    4ugme %t&ori trea da omogući uspostavljanje konekcije sa azom podataka &likom na

    dugme 7at&ori, konekcija sa azom podataka se prekida U oa slu$aja korisnik trea da

     ude oavešten preko message9o36a, koji sadrži odgovarajuću poruku "Slika 1.2#%

  • 8/16/2019 c# Primeri

    64/68

    Slika 1.2: 0avetenje o stanju konekcije

    -otreno je oezediti da korisnik ude oavešten i u slu$aju kada klikne na dugme'tvori, a konekcija je pre toga već otvorena Isti slu$aj trea oraditi i za dugme Datvori

    "Slika 1.#%

    Slika 1.: 0avetenje za korisnika

  • 8/16/2019 c# Primeri

    65/68

    e'eje%

    Da rad za azom podataka, koristimo Microsoft SK5 Ser&er Maa(e!et Studio4ress 'dmah nakon postupka po$etnog kreiranja projekta u Visual Studio6u, potreno je kreirati klasu, koja će sadrzati *oe*cioi stri(, koji služi za uspostavljanje

    konekcije sa ta$no odre5enom azom podataka Uslov za uspešno uspostavljanje

    konekcije, jeste da ciljana aza postoji na serveru &onekciju trea kreirati u dizajnmodu U Visual Studio6u trea aktivirati opciju u meniju 3ataA"dd New 3ata Source 

    "Slika 1.4#%

    Slika 1.4:

  • 8/16/2019 c# Primeri

    66/68

    Slika 1.: 9potre0a dijaloga *dd $onnection

    -reko dugmeta =est coectio proveriti da li je veza sa azom uspostavljena -otreno je da doijete oaveštenje =est coectio succeeded 4o kraja ne trea ništa višemenjati u 0izard6u 'risati automatski generisani fajl !orth0ind4ataSet Iz automatski

    generisanog fajla a)cofi( trea iskopirati konekcioni string u novu klasu 6oe*cija

    'avezno trea uklju$iti prostor imena S;ste!)3ata)SlCliet U prozoru Solution83plorer6a trea primetiti postojanje fajla appconfig, kao i klase &onekcijacs "Slika 1.B #%

  • 8/16/2019 c# Primeri

    67/68

    Slika 1.B: Solution '#plorer 

    &od za klasu 6oe*cija%

    class &onekcija

    ;   private static string konString C G74ata SourceC"local#SW:83press=Initial

      >>

    &od za klasu For!a6oe*cija%

     pulic partial class 1orma&onekcija % 1orm

    ;

      SXl

  • 8/16/2019 c# Primeri

    68/68

      (essage9o3Sho0"7&onekcija je vec otvorenaR7, 7'tvaranje konekcije7,

    (essage9o39uttons'&, (essage9o3IconInformation#=  return=

      >

      tr.

      ;  ?? otvori konekciju

      kon'pen"#=

      (essage9o3Sho0"konStateToString"##=  >

      catch "83ception cp#

      ;  (essage9o3Sho0"cpToString"##=

      >

      >

       private void uttonDatvoriA

      catch "83ception cp#

      ;  (essage9o3Sho0"cpToString"##=

      >

      >>