89
Visual Studio .NET Visual Studio .NET • Rad u Visual Studiu (VS) je organizovan u projekte. • Projekat se može otvoriti ili kreirati korišćenjem opcija Open Project Open Project ili New Project New Project (iz File menija).

Visual c# for aplication

Embed Size (px)

DESCRIPTION

Sam programski jezik je uređen konačan skup znakova za formulisanje programa. Njegova definicija data u ISO standardu glasi: programski jezik je veštački jezik koji se koristi za predstavljanje programa. Sam program predstavlja sistem oznaka za opis algoritama i struktura podataka pomoću kojih ljudi komuniciraju sa računarom. Jednostavnije korišćenje mašinskog jezika dobija se uvođenjem simboličkih imena za naredbe i adreseme morijskih lokacija, a to omogućava asemblerski ili simbolički mašinski jezik. Asemblerski jezik je niskog nivoa, zbog toga što je korespodencija između asemblerskog i mašinskog jezika jedan prema jedan. Programer koristi naredbe računara na kome radi, pa stoga program nije prenosiv - ne može se izvršiti na drugom računaru bez reprogramiranja.

Citation preview

Page 1: Visual c# for aplication

Visual Studio .NETVisual Studio .NET

• Rad u Visual Studiu (VS) je organizovan u projekte.

• Projekat se može otvoriti ili kreirati korišćenjem opcija Open Project Open Project ili New ProjectNew Project (iz File menija).

Page 2: Visual c# for aplication

Kreiranje novog projektaKreiranje novog projekta

• Kreiranje novog projekta za Console application:

Page 3: Visual c# for aplication

Kreiranje projekta - nastavakKreiranje projekta - nastavak

• Nakon što ste odabrali naziv aplikacije, lokaciju na kojoj će se projekat snimiti (i naziv Solution-a), pritiskom na OK prikazaće se novokreirani projekat:

Page 4: Visual c# for aplication

Glavni elementi VS okruženjaGlavni elementi VS okruženja

GLAVNI PROZOR

GLAVNI PROZOR

TOOLBOX

TOOLBOXSERVER

SERVER

EXPLORER

EXPLORER SOLUTION

SOLUTION

EXPLORER

EXPLORER

PROPERTIES

PROPERTIES

ERROR LISTERROR LIST

Page 5: Visual c# for aplication

Glavni elementi VS okruženjaGlavni elementi VS okruženja

• Glavni prozor koji prikazuje uvodnu početnu stranu „Start page“ kad se VS pokrene, je prozor u kome se prikazuje sav naš kod. On je podeljen na kartice (tabove).

• Glavni elementi VS okruženja su: Solution Explorer Solution Explorer – prikazuje strukturu i sadržaj trenutno učitanog

Solution-a. Solution čini jedan ili više projekata. Lista ReferencesReferences sadrži spisak .NET biblioteka koje koristimo u našem projektu.

PropertiesProperties – omogućava detaljno konfigurisanje pojedinačnih elemenata, npr. promenu osobina dugmeta na Windows formi kao što su boja, tekst i sl.

ToolboxToolbox – koristi se za dodavanje elemenata korisničkog interfejsa. Server Explorer Server Explorer – omogućava pristup i podešavanje karakteristika i

servisa servera. Koristi se za povezivanje sa bazo podataka.

Page 6: Visual c# for aplication

Kreiranje Windows aplikacijeKreiranje Windows aplikacije

• Postupak kreiranja novog projekta za Windows aplikaciju je sličan kao za kreiranje konzolne aplikacije, s tim što ćemo od ponuđenih Template-a odabrati Windows Forms Application:

Page 7: Visual c# for aplication

Kreiranje Windows aplikacijeKreiranje Windows aplikacije

• Windows Forms Application u VS:

Windows Form

Page 8: Visual c# for aplication

Kreiranje Windows aplikacijeKreiranje Windows aplikacije

• Toolbox je paleta sa elementima Windows korisničkog interfesja. Dodajmo dugme na našu formu Form1 jednostavnim prevlačenjem Button kontrole iz Toolbox-a na formu. Nakon što smo prevukli dugme na formu, ukoliko duplo kliknemo na njega, otvoriće se prozor (fajl) sa kodom koji ustvari, predstavlja formu koju vidimo iz Form1.cs[Design] prozora. Kursor će se pozicionirati na metodu koja će izvršiti ako korisnik klikne na dugme. Otkucajmo:

• MessageBox.Show("Pozdrav iz prve windows aplikacije");

Vidi kodkod na sledećem slajdu

Page 9: Visual c# for aplication

Kreiranje Windows aplikacijeKreiranje Windows aplikacije

Pokrenimo izvršavanje aplikacije pritiskom na F5

Page 10: Visual c# for aplication

Osnovni koncepti C# jezikaOsnovni koncepti C# jezika

Kada programiramo u C# jeziku, pišemo kod unutar metoda (method) koje se nalaze unutar klasa (class), a koje se pak nalaze unutar prostora za imena (namespace).

Na vrhu hijerarhije nalazi se namespace, unutar koga možete pronaći serije različitih klase, koje sadrže metode, koje sadrže izjave (statements).

Namespace

ClassMethod 1

statementstatement

Method 2statementstatement

Klasa sadrži jedan deo jedan deo vašeg programa (međutim neki mali programi mogu

sadržati samo jednu klasu).

Klasa sadrži jednu ili više metoda. Metode uvek moraju “živeti” unutar

klase. A metode su napravljene pomoću iskaza

– nalik onome u prethodnom primeru.

Svaki put kada kreirate novi projekat, automatski definišete namespace za isti, tako da je njegov kod

odvojen od .NET Framework klasa.

Page 11: Visual c# for aplication

Šta C# radi za Vas...?Šta C# radi za Vas...?

Čim kreirate novi projekat, C# kreira Form1.csForm1.cs, Form1.Designer.csForm1.Designer.cs, i Program.csProgram.cs fajlove, when you create a new project. Iste dodaje u Solution Explorer prozor, i podrazumevano (by default), čuva ove fajlove u sledećoj putanji:

My Documents\Visual Studio 2010\Projects\Ime_Vašeg_projekta\.

Sadrži kod koji definiše formu i

objekte unutar nje

Ovaj fajl sadrži C#kod koji definiše ponašanje forme.

Ovaj fajl sadrži kod koji startuje (podiže) program

i prikazuje formu

C#

Uverite se da ste sačuvali Vaš projekat odmah nakon što ste ga

kreirali, klikom na “Save All” iz File menija—ovo će sačuvati sve fajlove

iz projekta. Ukoliko kliknete na “Save”, to će samo sačuvati fajl na

kome trenutno radite...

C#C#

Form1.cs Program.cs Form1.Designer.cs

Visual Studio automatski kreira ova sva tri fajla.

Page 12: Visual c# for aplication

Dodavanje kontrola na formuDodavanje kontrola na formu

• Dodavanje kontrola u Visual Studio C# je VEOMA LAKO – samo prevuci i pusti (drag and drop).

• Kliknite na neku kontrolu iz Toolbox-a i prevucite je na Vašu formu. U pozadini C# sam dodaje kod u Form1.Designer.cs za novu dodatu kontrolu.

Svaki put kada izvršite promenu dodavajući kontrolu na formu, kod u

Form1.Designer.cs se automatski menja. C# Form1.Designer.cs

Ukoliko ne vidite Ukoliko ne vidite TToolbox, oolbox, pokušajte pokušajte da pređete mišom da pređete mišom

preko rečipreko reči “Toolbox” “Toolbox”koja se nalazi u koja se nalazi u

gornjem levom uglu gornjem levom uglu glavnog prozora glavnog prozora . .

Ukoliko nije tamo, Ukoliko nije tamo, selektujteselektujte

““Toolbox” Toolbox” iziz View View menmenijaija da bi se da bi se

pojaviopojavio..

Page 13: Visual c# for aplication

Naredba Naredba usingusing

Svaki program (kod fajl) započinje grupom usingusing linija koda (naredbi). Ova naredba govori C# jeziku da se planira korišćenje određenih prostora za nazive (grupe klasa), čije nazive kasnije nije potrebno ponavljati u programu kada se koristi određena klasa ili objekat iz te grupe.

Naredbe using se nalaze na početku svakog koda za formu projekta – u njima se navode

ugrađeni prostori za nazive koji se mogu koristiti.

Jednu stvar imajte na umu: Nije obavezno da koristiti usingusing naredbu! Uvek možete koristiti potpuno kvalifikovanu naredbu. Dakle, ukoliko izostavite using naredbu,

npr. System.Windows.Forms, i dalje možete prikazati message box pozivajući

System.Windows.Forms.MessageBox.Show(),

I kompajler će znati o kom namespace-u je reč. Naravno, ovo je duži i teži način!

Prostor za naziv zanaš projekat “Hello”

Page 14: Visual c# for aplication

Primer dužeg i kraćeg načinaPrimer dužeg i kraćeg načinaupotrebe prostora naziva u koduupotrebe prostora naziva u kodu

a) Upotreba dužeg načina – navođenjem pune sintakse svih prostora naziva koji se koriste za ispis poruke na ekranu:

System.Windows.Forms.MessageBox.Show (System.Windows.Forms.MessageBox.Show (""Pozdrav iz prve Windows Pozdrav iz prve Windows aplikacijeaplikacije",", "P"Pozdravozdrav""););

b) Upotreba kraćeg načina pozivanja klase iz prostora za nazive (ako je System.Windows.Forms klasa već navedena na početku programa u naredbi

uusingsing):

MessageBox.Show (MessageBox.Show (" " Pozdrav iz prve Windows aplikacije", "PozdravPozdrav iz prve Windows aplikacije", "Pozdrav""););

Duži (potpuno kvalifikovani) načinpisanja naredbi ima smisla koristiti ako

u različitim prostorima za nazivekoristimo klase ili objekte s istim

nazivom, jer se može pratiti iz kojegprostora je uzet određeni objekt

U svakom drugom slučaju praktičnijeje koristiti kraći način pisanja naredbi.

Kada koristiti duži način

Kada koristiti duži način

pisanja naredbi?

pisanja naredbi?

Page 15: Visual c# for aplication

Namespaces – prostori za naziveNamespaces – prostori za nazive

• Biblioteke (ili skupovi) klasa u .NET okviru su različiti prostori za nazive (namespaces).

• Šta su “namespaces”?

• Skupovi tipova koji su logički organizovani, što omogućuje korišćenje više verzija tipova s istim nazivom, ali unutar različitih prostora za nazive (npr. kao što postoje u prirodi grupe ili vrste živih bića), npr.

• Živa bićaŽiva bića -- VodozemciVodozemci

- - GmGmizavciizavci- - SisSisariari

** ŽivotinjeŽivotinje ** LjudiLjudi

...dalja podela prema rasi, polu, itd....dalja podela prema rasi, polu, itd.

• Postoji hijerarhija prostora za nazive – jedan prostor može sadržavati druge prostore u hijerarhijskom poretku.

• Prostori za nazive su sadržani unutar .NET okvira, ali i korisnici razvojnih alata mogu koristiti te prostore.

Page 16: Visual c# for aplication

Osnovni prostori za nazive uOsnovni prostori za nazive u.NET-u.NET-u

Page 17: Visual c# for aplication

IntelliSense mogućnostIntelliSense mogućnost

• Mogućnost Mogućnost ugrađena u alat,ugrađena u alat, koja pruža pomoć pri pisanju naredbi nakoja pruža pomoć pri pisanju naredbi na način način da nam prikazuje listu s mogućimda nam prikazuje listu s mogućim klasama, objektima, metodama kojeklasama, objektima, metodama koje možemo izabrati smožemo izabrati saa popisa popisa..

• Aktivira se automatski pri početku pisanjaAktivira se automatski pri početku pisanja naredbe ili tnaredbe ili tasterasterom Ctrlom Ctrl++SpaceSpace..

IntelliSensepokazuje popisobjekata koje

možemoizabrati a koji

počinju slovom“M”

IntelliSensepokazuje popis

metoda koje možemoizabrati za upisani

objekat Message BoxIzbor vršimo strelicama ili mišem i tasterom Enter prebacujemo taj deo naredbe u programski kod...

Page 18: Visual c# for aplication

Ključne reči C# jezikaKljučne reči C# jezika

• Svaki programski jezik sastoji se od niza ključnih reči kojeSvaki programski jezik sastoji se od niza ključnih reči koje imaju svoje imaju svoje unapred određeno značenje i mogu se koristiti zaunapred određeno značenje i mogu se koristiti za pisanje naredbi programa.pisanje naredbi programa.

• U C# jeziku neke od ključnih reči su:U C# jeziku neke od ključnih reči su:

Page 19: Visual c# for aplication

Objektno orjentisano programiranjeObjektno orjentisano programiranje

Page 20: Visual c# for aplication

Kreiranje vlastitih klasaKreiranje vlastitih klasa

• Ključne reči koriste se u naredbama programa.Ključne reči koriste se u naredbama programa. Osim korišOsim korišććenja enja ugrađenih ključnih reči, uugrađenih ključnih reči, u naredbama koristimo i proizvoljne nazive za naredbama koristimo i proizvoljne nazive za klase,klase, objekte, metode i objekte, metode i promenljive (promenljive (varijablevarijable))..

• Do sada smo u priDo sada smo u primmerima uvek koristili klase kojeerima uvek koristili klase koje su već ugrađene u su već ugrađene u razvojni alat C# (npr. klasa Formrazvojni alat C# (npr. klasa Form koja je označavala formu u Windows koja je označavala formu u Windows aplikaciji).aplikaciji). Međutim, u aplikaciji programeri često trebaMeđutim, u aplikaciji programeri često treba da da kreirakreirajuju vlastite vlastite klase po potrebi.klase po potrebi.

• Kako kreirati vlastite klase? Za odgovor na toKako kreirati vlastite klase? Za odgovor na to pitanje, potrebno je pitanje, potrebno je razumeti osnovne koncepterazumeti osnovne koncepte objektnog programiranja – štobjektnog programiranja – štaa su tipovi, su tipovi, klase,klase, instance, objekti.instance, objekti.

Page 21: Visual c# for aplication

ŠtŠtaa je tip u objektnom je tip u objektnomprogramiranju?programiranju?

• Bit objektnog programiranja je kreiranje novihBit objektnog programiranja je kreiranje novih tipova.tipova.

• Tip predstavlja neku stvar (eng. thing).Tip predstavlja neku stvar (eng. thing).

• Ponekad je stvar abstraktna (npr. tablica), a ponekad jePonekad je stvar abstraktna (npr. tablica), a ponekad je vrlo konkretna vrlo konkretna (npr. dugme u nekom prozoru).(npr. dugme u nekom prozoru).

• Tip definiTip definišeše op opštšta svojstva i ponašanje neke stvari.a svojstva i ponašanje neke stvari. Npr. dugme (kontrola Npr. dugme (kontrola button) je jedan tip objekta.button) je jedan tip objekta.

OK je jednainstancadugmeta

Cancel je jedna

instancadugmeta

Help je jedna

instancadugmeta

Sva ova tri objekta su tipa “button” (sve su to

dugmadi)

Page 22: Visual c# for aplication

Nasleđivanje kod tipovaNasleđivanje kod tipova

• Ako smo kreirali tri dugmeta (OK, Cancel i Help), sva triAko smo kreirali tri dugmeta (OK, Cancel i Help), sva tri nasleđuju nasleđuju svojstva koja ima tip “button”:svojstva koja ima tip “button”:

svojstvo visine, širinesvojstvo visine, širine text koji će pisati na dugmetutext koji će pisati na dugmetu položaj dugmeta na formi,položaj dugmeta na formi, i druga svojstva zajednička svim instancama kojei druga svojstva zajednička svim instancama koje pripadaju tipu “button”pripadaju tipu “button”

• Ta se karakteristika objektnog programiranja zoveTa se karakteristika objektnog programiranja zove NASLEĐIVANJE.NASLEĐIVANJE.

• NASLEĐIVANJE je mogućnost da instanceNASLEĐIVANJE je mogućnost da instance preuzimaju sva svojstva tipa preuzimaju sva svojstva tipa kojem pripadaju.kojem pripadaju.

Page 23: Visual c# for aplication

Vrste tipovaVrste tipova

• U C# jeziku se koriste ova 4 tipa:U C# jeziku se koriste ova 4 tipa: Klase, pri čemu se instance klase zovuKlase, pri čemu se instance klase zovu objekti,objekti, Enumeracije (eng. enums),Enumeracije (eng. enums), Strukture (eng. structs) iStrukture (eng. structs) i Delegati (eng. delegates).Delegati (eng. delegates).

od kojih se najčešće koriste KLASE, pa će bitiod kojih se najčešće koriste KLASE, pa će biti detaljnije objašnjene u detaljnije objašnjene u nastavku.nastavku.

Page 24: Visual c# for aplication

Klase, objekti (instance)Klase, objekti (instance)

• KLASA je neki tip promatranih objekata.KLASA je neki tip promatranih objekata.

• Klasa je adekvatna Klasa je adekvatna grupigrupi ili vrsti kod ili vrsti kod bioloških bića, npr. bioloških bića, npr. grupagrupa pasa, pasa, mačaka,mačaka, studenata, radnika, artikala, itd. Objekstudenata, radnika, artikala, itd. Objekaat jet je instanca neke klase, instanca neke klase, npr.npr.

Page 25: Visual c# for aplication

Odnos klase i objekataOdnos klase i objekata

• Klasa :Klasa :

– – To je model koji opisuje kako kreirati objekatTo je model koji opisuje kako kreirati objekat

– – je kao “šematski planje kao “šematski plan (skica)”(skica)”

– – Sadrži podatke (atribute) i metodeSadrži podatke (atribute) i metode

• Objekti:Objekti:

– – Objekat je predstava nekog entiteta iz realnogObjekat je predstava nekog entiteta iz realnog svetasveta

– – Instance klaseInstance klase

– – Može biti više objekata (instanci) klaseMože biti više objekata (instanci) klase

Page 26: Visual c# for aplication

Kreiranje klaseKreiranje klase

• Kada kreiramo neku vlastitu klasu, potrebno je definiKada kreiramo neku vlastitu klasu, potrebno je definissati:ati: njena njena svojstva (properties) svojstva (properties) ili ili promenljivepromenljive kojima će kojima će dodeljivati dodeljivati

vrednosti (ako se radi o javnimvrednosti (ako se radi o javnim svojstvima, tada se koristi izraz svojstvima, tada se koristi izraz “svojstvo” (eng.“svojstvo” (eng. property), a ako se radi o privatnim property), a ako se radi o privatnim promenljivamapromenljivama kojekoje će se koristiti samo u toj klasi, tada koristimoće se koristiti samo u toj klasi, tada koristimo izraz “izraz “promenljivapromenljiva””

metodemetode koje određuju njeno ponašanje. koje određuju njeno ponašanje.

• Naredba za kreiranje nove klase počinje ključnom rečiNaredba za kreiranje nove klase počinje ključnom reči classclass, zatim dolazi , zatim dolazi naziv klase, zatim deklaracijanaziv klase, zatim deklaracija svojstava (properties) koje se definisvojstava (properties) koje se definiššu za tu u za tu klasu, klasu, pa pa metode koje pripadaju klasi.metode koje pripadaju klasi.

Page 27: Visual c# for aplication

Kreiranje klase - nastavakKreiranje klase - nastavak

• Npr. ovako bismo kreirali vlastitu klasu:Npr. ovako bismo kreirali vlastitu klasu:

class mojaKlasaclass mojaKlasa

{{

//ovde definicija svojstava ili //ovde definicija svojstava ili promenljivihpromenljivih,,

npr.npr.

int mojaint mojaPromenljivaPromenljiva;;

}}

• Gornjim naredbama kreirali smo klasu pod nazivomGornjim naredbama kreirali smo klasu pod nazivom mojaKlasamojaKlasa, i njoj , i njoj pripadajuću celobrojnu pripadajuću celobrojnu promenljivupromenljivu pod nazivom pod nazivom mojamojaPromenljivaPromenljiva kojoj kojoj će se unutarće se unutar klase mojaKlasa moći dodeljivati vrednosti.klase mojaKlasa moći dodeljivati vrednosti.

Page 28: Visual c# for aplication

Kreiranje instance neke klaseKreiranje instance neke klase

• Npr. sledećim naredbama definiNpr. sledećim naredbama definišeše se klasa ili se klasa ili grupagrupa objekata objekata StudentStudent, a unutar , a unutar nje metoda pod nazivom nje metoda pod nazivom Main() Main()

• Main() je glavnaMain() je glavna metoda za neki program, a nalazi se u datoteci Program.cs u metoda za neki program, a nalazi se u datoteci Program.cs u okviruokviru Solution Explorer-a.Solution Explorer-a. U metodi se definiU metodi se definišeše instanca klase. instanca klase.

class Studentclass Student

{{

// ovde defini// ovde definišešemo svojstva koja pripadaju toj klasi:mo svojstva koja pripadaju toj klasi:

int Ocena;int Ocena;

// ovde defini// ovde definišešemo metodu:mo metodu:

public void Main()public void Main()

{{

Student Student StefanStefan = new Student(); = new Student();

StefanStefan.Ocena= 3;.Ocena= 3;

}}

}}

Kreiramo instancuStefan koja pripada

klasi Student

Promenljivoj Ocena kojapripada instanci Stefandodeljuje se vrednost 3

Page 29: Visual c# for aplication

Dodavanje klase u Visual StudDodavanje klase u Visual Studiiuu

Desni klik na naziv projektaDesni klik na naziv projekta

Page 30: Visual c# for aplication

Definisanje klaseDefinisanje klase

Klasa predstavlja apstraktnu predstavu skupa objekata koji imaju iste osobine. Sastoji se od atributa i metoda. Atributi i metode se nazivaju članice klase. Objekat predstavlja konkretan primerak - instancu klase.

Page 31: Visual c# for aplication

Instanciranje klase (kreiranjeInstanciranje klase (kreiranjeobjekata)objekata)

Page 32: Visual c# for aplication

KonstruktorKonstruktor

• Naredba kojom se definiše instanca neke klase izgleda ovako: (npr. za kreiranje instance Stefan klase Student)

Student Stefan Student Stefan = new = new Student()Student();;

• Naredba sadrži na kraju zagrade (), pa izgleda kao da poziva metodu.

• Zapravo, pri kreiranju nove instance poziva se jedna metoda koja se zove konstruktor (eng. constructor).

• Zadatak konstruktora je kreirati instancu (objekt) neke klase i omogućiti da se toj instanci dodeli vrednost kasnije u programu.

• Nakon što se konstruktorom kreira nova instanca, u memoriji se ostavlja prostor za vrednosnu instancu. Ako ne specifikujemo koji konstruktor pozivamo, * CLR poziva standardni (default) konstruktor kojim se definiše nova instanca klase i ne prosleđuju mu se nikakve vrednosti. Zato u zagradama kod ovog standardnog konstruktora ne pišemo ništa.

* CLR (Common Language Runtime) – je mehanizam izvršavanja u zajedničkom jeziku koji različite .NET jezike prevodi u isti zajednički jezik, koji se koristi kada se aplikacije izvršavaju (Barker, 2007).

Page 33: Visual c# for aplication

Konstruktor - nastavakKonstruktor - nastavak

• Ukoliko se želi koristiti neki vlastiti određeni konstruktor, tada se on mora deklarisati u programu pre samog korišćenja.

• Primer: deklarisanje konstruktora koji će ispisivati sistemsko vreme:

// constructor// constructorpublic Time(System.DateTime dt)public Time(System.DateTime dt){{Year = dt.Year;Year = dt.Year;Month = dt.Month;Month = dt.Month;Date = dt.Day;Date = dt.Day;Hour = dt.Hour;Hour = dt.Hour;Minute = dt.Minute;Minute = dt.Minute;Second = dt.Second;Second = dt.Second;}}

• Kako bi ovaj primer radio, potrebno je pre korišćenja konstruktora i deklarisati i dodeliti vrednosti za promenljive Year, Month, Date, Hour, Minute, Second.

Deklaracija konstruktorakoji je javan (public) da bise mogao koristiti u svim

metodama, on ćekonstruisati instance klaseTime, a prosleđuje mu sepromenljiva dtdt koja je tipa

System.DateTime

Page 34: Visual c# for aplication

Konstruktor - nastavakKonstruktor - nastavak

Nakon deklaracije, u nekoj metodi, npr. Main() može se koristiti deklarisani konstruktor da bi kreirao novu instancu klase Time.

Deklarisani konstruktor koristi se u klasi Tester, u metodi Main():

public class Testerpublic class Tester{{ static void Main( )static void Main( ) {{ System.DateTime currentTime = System.DateTime.Now;System.DateTime currentTime = System.DateTime.Now; Time t = new Time(currentTime);Time t = new Time(currentTime); t.DisplayCurrentTime( );t.DisplayCurrentTime( ); }}}}

Page 35: Visual c# for aplication

MetodeMetode

• Metoda je neka funkcija koja se nalazi unutar klase. Ona je član (eng. member) klase.

Metode definišu šta klase rade i kako se klase ponašaju. Metodama koje sami kreiramo možemo dati proizvoljne naziv, npr. Ispis(), Racunanje(), itd. Ako želimo napisati odgovor na događaj klik miša na neku kontrolu (button ili dr.),

dvostrukim klikom miša program će kreirati metodu i dati joj standardni naziv, npr. button1_Click()

• U svakoj aplikaciji postoji prva, glavna metoda iz koje se pozivaju sve ostale metode te aplikacije. Ta se metoda zove Main()Main(). Metoda Main() može se u C#-u videti u prozoru Program.csProgram.cs u Solution Explorer-u.

• Metode klase predstavljaju funkcije – članice klase.

• Svaka metoda sadrži : tip koji vraća (ili void ukoliko ne vraća nikakav tip), naziv (ime metode), listu parametara, telo metode.

• Ukoliko metoda vraća neku vrednost, onda se unutar tela metode mora pozvati naredba return.

Page 36: Visual c# for aplication

Primeri metodaPrimeri metoda

Page 37: Visual c# for aplication

Pozivanje metoda klasePozivanje metoda klase

Page 38: Visual c# for aplication

Metoda Main()Metoda Main()

• Otvorite u C#-u (Microsoft Visual Studio) novi projekat (Windows aplikaciju) pod nazivom Vezba.

• U Solution Explorer prozoru kliknite dva puta na Program.cs

• Pojaviće se programski kod za glavni program aplikacije koji poziva sve metode te aplikacije

Glavni program aplikacije može se videtikada kliknemo dvaput na “Progam.cs” u

prozoru Solution Explorer-a

Page 39: Visual c# for aplication

Metoda Main() - nastavakMetoda Main() - nastavak

Glavni program aplikacije izgleda ovako:

namespace vezbanamespace vezba {{

static class Programstatic class Program{{ /// <summary>/// <summary> /// ovde dolazi opis št/// ovde dolazi opis štaa aplikacija radi aplikacija radi /// </summary>/// </summary> [STAThread][STAThread] static void Main()static void Main() {{ Application.EnableVisualStyles();Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false);Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1());Application.Run(new Form1()); }}}}

}}

Unutar prostora za nazive (namespace-a)vezba kreira se klasa Program, unutar te

klase se definiše metoda Main()

Glavna metodaMain()

Page 40: Visual c# for aplication

Metoda Main() - nastavakMetoda Main() - nastavak

Metoda Main() se automatski poziva od strane CLR-a (Common Language Runtime-a) prilikom izvršavanja programa.

Za nas važna naredba u metodi Main() je ona koja pokreće aplikaciju, i otvara prvu formu aplikacije. To je naredba:

Application.Run(new Form1());Application.Run(new Form1());

Gornjom naredbom pokreće se aplikacija otvaranjem prve forme Form1.

Page 41: Visual c# for aplication

Kreiranje vlastite metodeKreiranje vlastite metode

• Kada se kreira neka metoda, ona takođe ima svoju deklaraciju. U deklaraciji se definiše tip podatka koji će metoda vraćati, zatim naziv metode i u zagradi parametre koji će se prosleđivati metodi.

• Npr. ovako:

IntInt myMethodmyMethod((int velicinaint velicina););

• Neke metode uopšte ne vraćaju nikakve vrednosti. Takve metode samo nešto izvode, i tada je tip metode voidvoid, a u zagradi se ne piše ništa, npr. ovako:

void myVoidMethod( );void myVoidMethod( );

Ovde se određuje da će metoda nakon izvršavanjavraćati celobrojnu vrednost

Naziv metode jemyMethod (možebiti proizvoljan)

Ovde se određuje da će se promenljiva s kojom će

se u metodi računatizvati “velicina” i biće

celobrojna

Page 42: Visual c# for aplication

Metode tipa Metode tipa voidvoid

• U C# se prilikom korišćenja metode uvek mora deklarisati tip koji metoda vraća ili napisati ključnu reč “void” ako metoda ne vraća nikakvu vrednost.

• Npr. do sada smo u primerima koristili metode koje ne vraćaju vrednosti, ali su bile standardne metode za klik miša na neko dugme, pa su njihove deklaracije izgledale ovako:

private void button1_Click(object sender, EventArgs e)private void button1_Click(object sender, EventArgs e)

“private” znači da semetoda koristi samounutar jedne klase ukojoj je deklarisana

“void” znači dametoda ne vraća

nikakvuvrednost

“button1_Click”je nazivmetode

Metodi se uzagradi prosleđuju

parametri koji sustandardni za neku

”click” metodu

Page 43: Visual c# for aplication

Komentari u programskom koduKomentari u programskom kodu

• Komentari se u programski kod umeću zbog više razloga: Kako bi olakšali programeru snalaženje u kodu (zbog mogućih

kasnijih ispravki) Kako bi omogućili izradu adekvatne programske dokumentacije

• Postoji tri osnovna načina upotrebe komentara:

11. . C++ stil:C++ stil:

// ovo je C++ stil pisanja komentara i vredi do kraja// ovo je C++ stil pisanja komentara i vredi do kraja

// jedne linije// jedne linije

2. C stil:2. C stil:

/* ovo je C stil pisanja komentara./* ovo je C stil pisanja komentara.

Komentar se može pisati kroz više linijaKomentar se može pisati kroz više linija

a vredi do znaka */a vredi do znaka */

3. Komentari za XML dokumente3. Komentari za XML dokumente

Page 44: Visual c# for aplication

Operator tačka (.)Operator tačka (.)

Operator . koristi se: Za pristup metodi ili svojstvu unutar neke klase Kako bi ograničio naziv klase na određeni prostor za nazive (namespace), npr. u naredbi

using System.Windows.Forms;using System.Windows.Forms;koristi se prostor za nazive System, u njemu podprostor Windows, a u njemu podprostor Forms.

•Primer:Student.Student.StefanStefan.Visina=1.Visina=19191;;

koristi instancu Stefan klase Student, i njegovom svojstvu Visina dodeljuje vrednost 191.

Page 45: Visual c# for aplication

Korišćenje statičnih članovaKorišćenje statičnih članova

Pri korišćenju metode Main() videli smo da naredba sadrži ključnu reč “static”:

static void Main()static void Main()

Reč “static” znači da se ta metoda može pozvati samostalno bez prethodnog pozivanja klase (Možete je koristiti bez da u ruci imate instancu te klase) Svojstva i metode neke klase mogu biti instance ili statični članovi. Ako su instance, moraju se pozivati preko operatora “.” tako da se najpre navede klasa kojoj pripadaju, npr. ako definiramo klasu Student, i u okviru nje instancu Stefan, a zatim neku metodu Upisi() (kojom će se studenti upisivati na fakultet), tada se ta metoda poziva:

a) ako prethodno nije definisana kao statična:Student.Student.StefanStefan.Upisi();.Upisi();

b) ako je prethodno definisana kao statična:Student.Upisi();Student.Upisi();

Page 46: Visual c# for aplication

Windows formeWindows forme

Page 47: Visual c# for aplication

Pojam Windows formePojam Windows forme

• Forma je osnovni elemenat korisničkog interfejsa.

• Forma je kontrola izvedena iz klase Form a koja je izvedena iz klase Control.

• Windows forme se kreiraju u slučajevima kreiranja desktop aplikacija i kada se očekuje da klijentski računari imaju dovoljno snage da izvrše odgovarajuću obradu podataka.

• ASP.NET Web forme se kreiraju u slučajevima kada je korisnički interfejs web browser i za aplikacije koje se objavljuju putem web-a.

Page 48: Visual c# for aplication

Svojstva windows formeSvojstva windows forme

• Name – ovo svojstvo postavlje ime forme odnosno ime odgovarujuće klase.

public partial class Form1 : Formpublic partial class Form1 : Form

• AcceptButton – pomoću ovog propertija se postavlja koje će dugme biti kliknuto kada korisnik pritisne taster ENTER.

• CancelButton – ovaj properti određuje koje će dugme biti kliknuto kada se pritisne ESC taster.

• ControlBox – određuje da li forma sadrži dugmad za minimizaciju, maksimizaciju, za zatvaranje prozora.

• Minimize Box, MaximizeBox svojstva omogućavaju prikazivanje i sakrivanje dugmadi za maksimiziranje i minimiziranje.

• Text property određuje tekst koji će biti prikazan na naslovnoj liniji forme.

• StartPosition određuje početnu poziciju forme na ekranu.

• WindowState svojstvo omogućava prikaz forme u normalnoj veličini, minimiziranu i maksimiziranu.

Page 49: Visual c# for aplication

Događaji i metode formeDogađaji i metode forme(životni ciklus forme)(životni ciklus forme)

Page 50: Visual c# for aplication

Opis događaja formeOpis događaja forme

• Load događaj se koristi da bi se izvršile akcije pre nego što forma postane vidljiva.

• Activated događaj se okida kada se forma aktivira u kodu ili od strane korisnika. Okida se npr. kada forma dobije fokus od neke druge forme.

Ovaj događaj se okida pre događaja GotFocusGotFocus.

• Kada forma predaje fokus drugoj formi pali se događaj DeactivateDeactivate.

• ClosingClosing događaj se trigeruje kada forma dobije zahtev da se zatvori. Ukoliko postoji potreba da forma i dalje bude otvorena ovaj događaj se može poništiti.

• Closed događaj se trigeruje kada je forma zatvorena ali pre događaja

DisposeDispose.

• DisposeDispose metod se automatski poziva za glavnu formu aplikacije.

• Metoda Hide() sakriva formu sa ekrana ali ona i dalje postoji u memoriji.

Page 51: Visual c# for aplication

Prikazivanje, skrivanje i uništavanjePrikazivanje, skrivanje i uništavanjeformeforme

Page 52: Visual c# for aplication

Osnovne Windows kontroleOsnovne Windows kontrole

Page 53: Visual c# for aplication

Klasa ButtonKlasa Button

• Klasa Button predstavlja windows kontrolu Button.

• Na dugme se može kliknuti mišem, pritiskom na taster ENTER, pritiskom na taster ESC ili pritiskom na SPACE taster(kada dugme ima fokus).

• Ako se kao AcceptButton (CancelButton) forme postavi odgovarajuće dugme tada se pritiskom na taster ENTER (Esc) izvršava klik na to dugme.

• Može se koristiti DialogResult property dugmeta da bi se specificirala povratna vrednost ShowDialog() metode.

• Pozivom metode dugme.PerformClick() simulira se klik korisnika na dugme.

Page 54: Visual c# for aplication

Klasa LabelKlasa Label

• Koristi se za predstavljenje opisnog teksta korisniku.

• Obično se koristi u kombinaciji sa kontrolama za unos i editovanje teksta.

• Text propery definiše tekst koji će se pojaviti na labeli.

• Korisnik ne može menjati tekst na labeli.

• Labela ne može da dobije fokus.

Label

Button

Page 55: Visual c# for aplication

Windows Hello worldWindows Hello worldaplikacijaaplikacija

Page 56: Visual c# for aplication

LinkLabel kontrolaLinkLabel kontrola

• LinkLabel kontrola omogućava da se na windows formi kreira web link koji može da otvori web stranu kada se na njega klikne ili da izvrši neku drugu operaciju.

• Svojstvo ActiveLinkColor definiše boju aktivnog linka.• Svojstvo LinkArea definiše oblast LinkLabel kontrole koja se ponaša

kao link.• Svojstvo LinkVisited ukazuje dali je link već posećen ili nije.• Svojstvo VisitedLinkColor definiše boju posećenog linka.

Page 57: Visual c# for aplication

Primer upotrebe LinkLabelPrimer upotrebe LinkLabelkontrolekontrole

Page 58: Visual c# for aplication

TextBox kontrolaTextBox kontrola

• Koristi se za prihvatanje ulaza od strane korisnika ili za prikaz vrednosti.

• Text propertyText property se koristi za čitanje sadržaja tekst boksa ili prikaz sadržaja u tekst boksu.

• Multiline property Multiline property – ako se postavi na true moguće je prikazivanje teksta u više linija.

• MaxLengthMaxLength – definisanje maksimalnog broja karaktera za TextBox.

• ScrollBarsScrollBars za postavljanje horizontalnog, vertikalnog ili oba skrola.

• PasswordChar PasswordChar omogućava da se prikazuje određeni znak kada korisnik unosi tekst.

• TextAlignTextAlign svojstvo omogućava podešavanje ravnjanja teksta u TextBox kontroli.

• Najčešće korišćeni događaj ove kontrole je TextChangedTextChanged koji se generiše svaki put kada se promeni tekst u TextBox kontroli.

• Događaj KeyDownKeyDown generiše se kada se pritisne neki taster na tastaturi pre nego što se otpusti.

Page 59: Visual c# for aplication

Obrada događaja KeyDownObrada događaja KeyDown

Page 60: Visual c# for aplication

Primer upotrebe TextBoxPrimer upotrebe TextBox kontrole - GUI kontrole - GUI

Page 61: Visual c# for aplication

Primer upotrebe TextBoxPrimer upotrebe TextBoxkontrole - kodkontrole - kod

Page 62: Visual c# for aplication

RichTextBoxRichTextBox

• Omogućava korisniku unos teksta ali mu daje naprednije mogućnosti za editovanje.

• Metoda LoadFileLoadFile omogućava učitavanje tekstualnog fajla(čist tekst ili rtf format) u tekst boks.

• RichTextBoxStreamType enumeracija specificira tip ulaznog ili izlaznog toka sa kojim radi RichRextBox.

• Metoda SaveFileSaveFile omogućava čuvanje sadržaja tekstboksa u tekstualni fajl.

• Metoda Clear() Clear() briše sadržaj tekst boksa.

Primer upotrebe

Page 63: Visual c# for aplication

CheckBox kontrolaCheckBox kontrola

• Klasa CheckBox predstavlja Windows kontrolu CheckBox koja omogućava korisniku da nešto potvrdi(čekira) ili ne.

• Može biti čekirano više od jednog ček dugmeta.

• Pomoću property-ja Checked može se pročitati ili postaviti stanje CheckBox-a.

• Događaj CheckedChanged se okida kada dugme prelazi iz stanja čekirano u stanje nečekirano ili obrnuto.

• Može se takođe instancirati iz koda, pri čemu je potrebno dodati ga u Controls kolekciju forme i definisati njegove event handler-e.

Primer upotrebe

Page 64: Visual c# for aplication

Svojstvo CheckedSvojstvo Checked

Page 65: Visual c# for aplication

Događaj CheckedChangedDogađaj CheckedChanged

Page 66: Visual c# for aplication

RadioButton kontrolaRadioButton kontrola

• Radio dugmad se obično nalaze u Grupi.

• najpre se dodaje kontrola GroupBox na formi.

• zatim se dodaju radio dugmad u grupu.

• samo jedno radio dugme u grupi u jednom trenutku može biti selektovano.

• Property Checked radio dugmeta vraća true ako je ono čekirano ili false ako nije.

• Događaj CheckedChanged se okida kada dugme prelazi iz stanja čekirano u stanje nečekirano ili obrnuto.

Page 67: Visual c# for aplication

Primer upotrebe RadioButtonPrimer upotrebe RadioButtonkontrole-GUIkontrole-GUI

Page 68: Visual c# for aplication

Primer upotrebe RadioButton Primer upotrebe RadioButton kontrole -kontrole - kodkod

Page 69: Visual c# for aplication

Primena osnovnih Windows kontrolaPrimena osnovnih Windows kontrolaRazmena podataka Razmena podataka između Windows formiizmeđu Windows formi

Page 70: Visual c# for aplication

Kod za prethodni primerKod za prethodni primer

Page 71: Visual c# for aplication

Standardni windows dijaloziStandardni windows dijalozi

• Nalaze se u Dialogs sekciji Toolboxa.

• Instanciraju se prevlačenjem na Windows formu.

– OpenFileDialog

– SaveFileDialog

– FontDialog

– ColorDialog

– PrintDialog

– FolderBrowserDialog

Page 72: Visual c# for aplication

Primer upotrebe standardnihPrimer upotrebe standardnihdijalogadijaloga

Page 73: Visual c# for aplication

Funkcije za startovanje aplikacijeFunkcije za startovanje aplikacije

Page 74: Visual c# for aplication

ColorDialogColorDialog

Page 75: Visual c# for aplication

FontDialogFontDialog

Page 76: Visual c# for aplication

FolderBrowserDialogFolderBrowserDialog

Page 77: Visual c# for aplication

SaveFileDialogSaveFileDialog

Page 78: Visual c# for aplication

OpenOpenFileDialogFileDialog

Page 79: Visual c# for aplication

Vežbe kroz primere

Vežbe kroz primere

Page 80: Visual c# for aplication

Zadatak 1Zadatak 1

1. Napraviti Windows aplikaciju, koja će imati jednu label kontrolu i jedan Button. Prilikom pritiska na dugme, otvara se message box u kojem je ispisana poruka korisniku. Izgled prozora treba da bude kao na slici ispod:

Page 81: Visual c# for aplication

Zadatak 2Zadatak 2

2. Napraviti windows aplikaciju, koja će imati samo jednu link labelu, u okviru koje će biti ispisan tekst 'Posetite TFC', pri čemu reč 'TFC' predstavlja istovremeno i link na web stranicu TFC-a. Dakle, kada korisnik klikne na taj link, otvoriće se stranica www.tfc.kg.ac.rs. Izgled forme treba da bude kao na slici ispod:

Page 82: Visual c# for aplication

Zadatak 3Zadatak 3

3. Napraviti windows aplikaciju, koja će imati dve labele, dva text box-a i jedno dugme. Prilikom njenog pokretanja, u text box-ovima treba da budu ispisane poruke korisniku, kao na sledećoj slici ispod:

Page 83: Visual c# for aplication

Zadatak 4Zadatak 4

4.Napraviti windows aplikaciju, koja ima jednu osnovnu formu sa dve labele, dva text box-a i jednim dugmetom. U text box-ove korisnik treba da unese dva broja tipa 'double', a klikom na dugme otvara se message box u kojem je ispisan zbir unetih brojeva. Izgled treba da bude kao na slici ispod:

Page 84: Visual c# for aplication

Zadatak 5Zadatak 5

5. Napraviti windows aplikaciju, koja će imati dve labele i jednu Timer komponentu. Svakim pokretanjem aplikacije, potrebno je da se u drugoj labeli prikaže tačno vreme u tom trenutku.

Page 85: Visual c# for aplication

Zadatak 6Zadatak 6

6. Napraviti windows aplikaciju, koja ima jedan combo box i jedan text box. U combo box uneti nekoliko stavki. Kada korisnik izabere neku stavku iz combo box-a, potrebno je da se automatski u text box-u ispiše poruka o tome koju je stavku korisnik izabrao. To ilustruje sledeća slika

Page 86: Visual c# for aplication

Zadatak 7Zadatak 7

7. Napraviti windows aplikaciju, koja će imati jednu formu sa tri radio dugmeta, smeštenih u jedan group box, zatim jedno dugme i jedan text box (multiline). Pritiskom na dugme "Rezervisi", u text box-u se ispisuje odgovarajuća poruka korisniku. Samo jedno radio dugme u jednom trenutku može biti selektovano.

Page 87: Visual c# for aplication

Zadatak 8Zadatak 8

8. Napraviti windows aplikaciju, koja će imati jednu formu sa 4 check box-a, jedno dugme i jedan text box (multiline). Klikom na dugme, u text boxu se ispisuje poruka odgovarajuće sadržine, kao na slici ispod

Potvrđivanjem check box-a "Sakri porudzbinu", text box treba da postane nevidljiv za korisnika. To ilustruje sledeća slika:

Page 88: Visual c# for aplication

Zadatak 9Zadatak 9

9. Napraviti windows aplikaciju, koja će imati tri dugmeta i jedan richText box, kao na sledećoj slici

Klikom na dugme 'Sacuvaj', sadržaj richText box-a, treba da bude sačuvan u fajlu na putanji C:Tempproba.rtf. Dugme 'Citaj' služi za učitavanje sadržaja fajla sa iste putanje u richText box. Dugme 'Brisi' služi za brisanje sadržaja richText box-a.

Page 89: Visual c# for aplication