O upotrebi kontrola Label, TextBox i Button u WinForms aplikacijama. Osobine, metode, događaji. Rešeni zadaci sa objašnjenjima kao i zadaci za samostalni rad(puno ime , sabiranje celih brojeva, kalkulator, obim i površina kruga, Heronov obrazac, kvadratni koren, Fibanačijevi brojevi, rođendanski broj…)
Poglavlje 28 ● Kontrole Label, TextBox i Button
28.1 ● Label
U aplikacijama zasnovanim na Windows-u (Windows Forms App) kontrola Label(oznaka) je namenjena prikazivanju teksta koji korisnik ne može direktno izmeniti. Najčešće se kontrola Label loristi u paru sa kontrolom TextBox tako da bliže definiše njegov sadržaj. Neka od bitnih svojstava kontrole Label data su u Tabela_28_1:
Svojstvo | Opis svojstva |
Text | Tekst prikazan u kontroli |
TextAlign | Poravnavanje teksta unutar kontrole(TopLeft, TopCenter, TopRight, iddleLeft…BottomRight) |
Size | Dužina i širina kontrole |
BackColor | Boja pozadine kontrole |
BorderStyle | Oblik ivice kontrole |
Font | Svojstva fonta teksta kontrole |
ForeColor | Boja teksta kontrole |
Name | Ime kontrole |
Location | Koordinate gornjeg levog temena kontrole u odnosu na kontejner koji je sadrži. Kontejner je najčešće forma. |
AutoSize | Ukoliko je vrednost true kontrola automatski menja dužinu/širinu da bi bio vidljiv ceo tekst. Ukoliko je vrednost false kontrola ne menja svoju veličinu |
Visible | Ukoliko je vrednost True kontrola će biti vidljiva a ukoliko je vrednost False kontrola će biti nevidljiva |
Tabela_28_1: Svojstva kontrole Label
Naveden je veoma mali broj svojstava kontrole Label i to uglavnom ona koja ćemo koristiti u zadacima. Kompletan opis svih konstruktora, svojstava(osobina) , metoda i događaja uvek je dostupan na Microsoftovom sajtu , na adresi: https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.label?view=windowsdesktop-8.0
28.2 ● Polje za tekst (TextBox)
Kontrola TextBox(polje za tekst) je namenjena za unos teksta od strane korisnika i njegovo prikazivanje. Kontrola TextBox sadrži ista svojstva kao i kontrola Label(osim AutoSize) i još neka koja navodimo u Tabela_28_2:
Svojstvo | Opis svojstva |
MultiLine | Ukoliko je vrednost True tekst je moguće prikazati u više redova unutar kontrole a ukoliko je vrednost False tekst se prikazuje u samo jednom redu |
ReadOnly | Ukoliko je vrednost True tada se sadržaj kontrole ne može menjati od strane korisnika a ukoliko je vrednost False promene su omogućene. Logično, podrazumevana vrednost je False. |
Enabled | Ukoliko je vrednost True moguće je ostvariti interakciju sa korisnikom a ukoliko je vrednost False to nije moguće. Podrazumevana vtrdnost je True |
WordWrap | Ukoliko je vrednost True omogućen je automatski prelom teksta a ukoliko je False nije. Podrazumevana vrednost je True |
AutoCompleteMode | Svojstvo koje omogućava automatsko dovršavanje teksta u kontroli u zavisnosti od vrednosti(None , Suggest, Append, SuggestAppend) |
AutoCompleteSource | Svojstvo usko povezano sa AutoCompleteMode i omogućava izbor kolekcije stringova na osnovu koje će biti realizovana automatsko dovršavanje definisano u svojstvu AutoCompleteMode |
PasswordChar | Vrednost(jedan karakter) koristi se za sakrivanje(maskiranje) unetih znakova. Kao što ime svojstva govori najčešće se koristi za sakrivanje znakova kod unosa lozinke( npr znakom *) |
Kao i kod kontrole Label pomenut je samo mali broj postojećih svojstava. Kompletan opis svih konstruktora, svojstava(osobina) , metoda i događaja uvek je dostupan na Microsoftovom sajtu , na adresi:
https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.textbox?view=windowsdesktop-8.0
28.3 ● Dugme(Button)
Kontrola Button(dugme) uglavnom je namenjena za obradu događaja klik na dugme(Click) koji pokreće korisnik najčešće pomoću miša ali moguće je i tasterom ENTER ili SPACE ukoliko je fokus na dugmetu. Kontrola Button je jedna od najbitnijih kontrola u Windows Forms aplikacijama. Omogućiće korisniku izlaz iz aplikacije, unos zapisa u bazu, prijavljivanje korisnika, import podataka iz csv fajla itd. Ova kontrola sadrži sva svojstva navedena za kontrolu Label kao i svojstvo Enabled kontrole TextBox U Tabela_28_3 navodimo još neka , često korišćena svojstva, kontrole Button.
Svojstvo | Opis svojstva |
---|---|
AutoEllipsis | Ukoliko je vrednost True i tekst se proteže van dužine kontrole dodaje se tekst (…) koji to naznačava korisniku. Ukoliko je vrednost False tekst se prikazuje unutar kontrole u meri koju dozvoljava dužina kontrole( ukoliko je tekst duži od dužine same kontrole prikazuje se samo deo teksta) |
BackgroundImage | Pozadinska slika prikazana u kontroli. Način prikaza slike u kontroli određen je svojstvom BackgroundImageLayout ( Title, Center , Stretch, Zoom) |
Image | Slika koja se prikazuje uz text unutar kontrole |
ImageAlign | Određuje način poravnanja slike unutar kontrole. Vrednosti ovog svojstva su slične vrednostima svojstva TextAlign. |
Glavni( i podrazumevani) događaj kontrole Button je klik na dugme(Click). Detaljan opis konstruktora, svojstava(osobina) , metoda i događaja kontrole Button uvek je dostupan na Microsoftovom sajtu na adresi: https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.button?view
Forma na Slika_28_1 sadrži:
- Dve kontrole Label (Prezime, Ime)
- Dve kontrole TextBox ( desno od kontrola Label)
- Dve kontrole Button (Puno ime, Zatvori)

Slika_28_1: Forma sa kontrolama Label, TextBox i Button..
28.4 ● Vežba(Puno ime, MessageBox): Kreirajmo jednostavnu aplikaciju koja će omogućiti korisniju da unese svoje ime i prezime a potom da klikom na dugme sa tekstom Puno ime prikaže uneto ime i prezime koristeći klasu MessageBox. Svojstva svih korišćenih kontrola data su u Tabela_28_4_1 |
Komponenta | Svojstva(Properties) | Naziv (Name) | Dodatni opis | |
Label | Text: Ime Font: Bold , Size 12 | lblIme | ||
Label | Text: Prezime Font: Bold , Size 12 | lblPrezime | ||
TextBox | txtIme | Korisnik unosi svoje ime | ||
TextBox | txtPrezime | Korisnik unosi svoje prezime | ||
Button | Text: Puno ime Font Bold, Size 10 | btnPunoIme | U MessageBox treba prikazati puno ime (Prezime ime) | |
Button | Text: Zatvori Font Bold, Size 10 | btnZatvori | Zatvara formu | |
Form | Text: Z_28.4 BackColor: Linen Size: 580×150 FormBorderStyle: FixedToolWindow | Main |
Zadatak je veoma jednostavan ali će nam pružiti detaljan uvid u način dodavanja kontrola na formu i obradu događaja klik na dugme. Pošto smo pokrenuli razvojno okruženje Visual Studio i kreirali projekat Windows Forms App, u prvom koraku trebalo bi da kreiramo formu kao na slici Slika_28_2:

Slika_28_2: Korisnički interfejs za vežba 28.4
Kontrole se dodaju prevlačenjem iz menija Tooboox (obično pozicioniranog uz levu ivicu ) i spuštanjem na željenu poziciju unutar forme kao što je prikazano na Slika_28_3:

Slika_28_3: Dodavanje nove kontrole formi
Raspored kontrola unutar prozora Toolbox možete urediti na proizvoljan način. U našem primeru kontrola Label nalazi se na samom vrhu liste kontrola a obično je negde u drugoj polovini liste. Na analogan način možete dodati i drugu kontrolu Label kao i dve kontrole Button i dve kontrole TextBox. Za sada ne brinite o poravnanju kontrola , dimenzijama , tekstu, fontu i ostalim osobinama koje se odnose na sam izgled kontrola.
Kada smo kontrole rasporedili na formu možemo preći na podešavanje njihovih svojstava(Properties). U tu svrhu koristimo prozor Properties koji se obično nalazi uz desnu ivicu, u donjoj polovini. Podesićemo najpre svojstvo Text kontrole Label koju smo upravo dodali. Najpre označine dodatu kontrolu Label na formi ( kliknite levim dugmetom miša na kontrolu i dobiće izgled kao na Slika_28_3). U prozoru Properties nađite svojstv Text i njegovu vrednost podesite na Ime kao što je prikazano na Slika_28_4. Na sličan način podesimo i ostale osobine kontrole(Name lblIme, Font Size 12 , Font Bold true). Dodajte i ostale kontrole i podesite njihova svojstva tako da dobijate izgled forme sličan onom koji je prikazan na Slika_28_2.
Praktičan savet 28_1 ( o kopiranju kontrola): Lako je moguće uočiti da dve kontrole Label imaju iste osobine koje opisuju font. Da bi malo uštedeli na vremenu , kada podesimo osobine prve kontrole Label (Ime) iskopirajte je na uobičajeni način ( poznati mehanizam Copy-Paste). Ostaje da samo izmenite svojstva Text i Name. Možda ovaj primer i nije reprezentativan, ali ukoliko imate više kontrola sa više zajedničkih svojstava onda opisani postupak kopiranja drastično štedi vreme dizajniranja |
Praktični savet 28_2(o poravnavanju kontrola): Više kontrola moguće je na jednostavan način poravnati. U našem primeru kontrole Label (Ime, prezime) poravnate su po levoj ivici kontrole. Jedan od načina da izvedete poravnanje je da koristeći miša pomerate jednu od kontrolu levo-desno. Ukoliko je pomerite dovoljno ulevo, pojaviće se vertikalna ivična linija koja vam pokazuje da ste kontrolu doveli do “levog poravnanja“. Jednostavniji način , pogotovo ukoliko imate veći broj kontrola raspoređenih na formi, je da označite obe kontrole ( npr. mišem opišite pravougaonik oko njih kao u nekim od programa za obradu slika ili vektora) , a zatim u meniju Format izaberite podmeni Align a iz njega Left. Na sličan način možete izvršiti i poravnanja uz desnu (Right) , gornju(Top), donju(Bottom) itd. Skoro identično opisanom postupku možete podesiti i veličinu kontrole( Make Same Size) , verticalni razmak (Vertical Spacing) i horizontalni razmak(Horizontal Spacing). Eksperimentišite sa različitim podešavanjima i lako ćete uvideti njihovu funkcionalnost!. |

Slika_28_4: Prozor Properties
Sada, kada smo kreirali korisnički interfejs, možemo preći na obradu događaja. Najjednostavniji i najčešće korišćeni način upotrebe kontrole Button je izvršavanje koda kada se klikne na dugme. Jedan od načina da definišete akciju koja se izvršava klikom na dugme je da najpre selektujete dugme a potom napravite dupli klik na dugme. U ovom slučaju na btnZatvori. Tada možete uneti željeni kod kojim se realizuje zatvaranje forme.
private void btnZatvori_Click(object sender, EventArgs e)
{
this.Close(); // metoda koja zatvara obrazac
}
Na sličan način unesimo i kod koji treba pokrenuti kada se klikne na dugme btnPunoIme.
private void btnZatvori_Click(object sender, EventArgs e)
{
string poruka = txtPrezime.Text + " " + txtIme.Text; // sadržaj Textbox-ova nadovezuje jedan na drugi , razdvojeno prazninom
string naslov = "Poruka";
MessageBox.Show(poruka, naslov); // metoda Show klase MessageBox namenjena prikazivanju poruka
}
Da bi preuzeli tekstualni sadržaj kontrole Textbox koristimo njeno svojstvo Text(Tabela_28_1). U našem primeru:
string poruka = txtPrezime.Text + ” “ + txtIme.Text;
Napomena_28_1( o operatoru +): Podsetimo se da ako operator + primenjujemo na operande koji su tipa string (bar jedan) kao rezultat dobijamo znkovni niz nastao nadovezivanjem jednog operanda na drugi. Ako jedan od operanadanije tipa string biće konvertovan u stringovni tip. |
Napomena_28_2(MessageBox): Za prikaz poruka u Windows Forms aplikacija podrazumevano ćemo koristiti klasu MessageBox. Ova klasa ima statički preopterećeni metod Show kojim se mogu prikazati naslov, poruka i dugmad za akciju. Jedan od njegovih najjednostavnijih i najčešćih oblika je MessageBox.Show(poruka,naslov) a što smo i iskoristili u ovom primeru. Nađite na Microsoftovom sajtu detaljnije informacije o klasi MessageBox i njenom metodu Show. |
Kompletan projekat za Vežba 28.4 možete preuzeti ovde.
28.5●Vežba(Puno ime , label): Izmeniti predhodni zadatak tako da se puno ime prikazuje u labeli lblPunoIme iznad button btnPunoIme i btnZatvori umesto preko MessageBox.Show. Korisnički interfejs prikazan je na Slika_28_5. |

Slika_28_5: Korisnički interfejs vežba 28.5
Uz promene u dizajnu (dodavanje nove kontrole Label lblPunoIme) promena je i u kodu vezanom za događaj Click kontrole Button btnPunoIme:
private void btnPunoIme_Click(object sender, EventArgs e)
{
string punoIme = txtPrezime.Text + " " + txtIme.Text;
lblPunoIme.Text = "Puno ime " + punoIme;
}
Kompletan projekat za Vežba 28.4 možete preuzeti ovde.
28.6●Vežba(sabiranje celih brojeva): Kreirati aplikaciju koja će omogućiti sabiranje dva broja( tipa double). Svojstva svih korišćenih kontrola data su u Tabela_28_4_2 a korisnički interfejs na Slika_28_6. |
Komponenta | Svojstvo(Properties) | Naziv | Dodatni opis |
Label | Text: a= Font: Times New Roman, Bold , Size 12 | lbla | |
Label | Text: b= Font:Times New Roman, Bold , Size 12 | lblb | |
Label | Text: Zbir Font: Times New Roman, Bold , Size 12 | lblNaslovZbir | |
Label | Text: Font: Times New Roman, Bold , Size 12 | lblRezultat | Rezultat sabiranja |
TextBox | Font:Times New Roman, Bold , Size 10 | txta | Korisnik unosi broj |
TextBox | Font:Times New Roman, Bold , Size 10 | txtb | Korisnik unosi broj |
Button | Text: Saberi Font Times New Roman , Bold, Size 10 | btnSaberi | U MessageBox treba prikazati puno ime (Prezime ime) |
Button | Text: Zatvori Font Times New Roman ,Bold, Size 10 | btnZatvori | Zatvara formu |
Form | Text: Sabiranje brojeva Size: 580×150 | Main |

Slika_28_6: Korisnički interfejs vežba 28.6
U ovom zadatku akcenat će biti stavljen na preuzimanje brojčanih vrednosti iz kontrola TextBox (txta i txtb) i eventualnih problema koji mogu nastati unosom vrednosti koje se ne mogu konvertovati u brojeve u pokretnom zarezu dvostruke tačnosti.
Krenimo od slučaja kada je korisnik u oba Textbox-a uneo vrednosti koje se mogu konvertovati u vrednost u pokretnom zarezu.
private void btnSaberi_Click(object sender, EventArgs e) {
double a = double.Parse(txta.Text);
double b = double.Parse(txtb.Text);
double zbir = a + b;
lblZbir.Text = zbir.ToString();
}
Da bi konvertovali vrednost unetu u Textbox txta kojem se pristupa svojstvom Text u broj u pokretnom zarezu možemo koristiti:
- statičku metodu Parse tipa double : double a=double.Parse(txta.Text):
- statičku metodu ToDouble klase Convert: double a=Convert.ToDouble(txta.Text);
Problem će nastati ukoliko u TextBox unesemo vrednost koja se ne može konvertovati u broj u pokretnom zarezu dvostruke tačnosti( npr. unesite string “pi“ u Textbox txta). U tom slučaju dolazi do greške tokom izvršavanja (izuzetak , exception) koju aplikacija ne očekuje i u našem slučaju prekida rada programa kao na slici Slika_28_7.

Slika_28_7: Izuzetak(Exception) prilikom parsovanja stringa u numeričku vrednost
Najjednostavniji i najopštiji način da se ovaj problem reši je korišćenje koda try-catch za obradu izuzetaka . Na ovaj način moguće je obraditi “uhvatiti ” svaki izuzetak. U našem slučaju ne samo nekorektno unetu vrednosu u TextBox koji očekuje broj u pokretnom zarezu već i , recimo, preveliki broj po apsolutnoj vrednosti koji će dovesti do “prekoračenja”. Dakle, jedno od mogućih rešenja je:
private void btnSaberi_Click(object sender, EventArgs e) {
try {
double a = double.Parse(txta.Text);
double b = double.Parse(txtb.Text);
double zbir = a + b;
lblZbir.Text = zbir.ToString();
} catch (Exception ex) {
MessageBox.Show(ex.Message, "Greška"˝);
}
}
Predhodni kod možemo poboljšati dodavanjem catch bloka koji će obraditi izuzetak izazvan unosom nekorektnih vrednosti u Textbox-ove (FormatException).
private void btnSaberi_Click(object sender, EventArgs e) {
try {
double a = double.Parse(txta.Text);
double b = double.Parse(txtb.Text);
double zbir = a + b;
lblZbir.Text = zbir.ToString();
} catch (FormatException ex) {
MessageBox.Show(ex.Message, "Greška"˝); // poruka o grešci u slučaju nemogućnosti konvertovanja stringovne u numeričku vrednost
} catch (Exception ex) {
MessageBox.Show(ex.Message, "Greška"˝); // poruka o bilo kojoj drugoj grešci koja nije obrađena u catch bloku FormatException
}
}
Napomena_28_3(TryParse): Metod double.TryParse konvertuje string u broj u pokretnom zarezu dvostruke tačnosti. Prvi parametar metode TryParse je string koji se konvertuje a drugi parametar je konvertovana vrednost. Metoda vraća vrednost true ukoliko je konverzija uspešna odnosno false ukoliko je neuspešna. Metod TryParse postoji i kod drugih brojčanih tipova kao što su int, float, boolean… |
private void btnsaberi_Click(object sender, EventArgs e) {
bool result = false;
double a;
double b;
// pokušaj konverzije unete tekstualne vrednosti u Textbox txta
// u slučaju uspešne konverzije vrednost promenljive result je true a u suprotnom false
result = double.TryParse(txta.Text, out a);
// ukoliko je konverzija neuspešna , prikazuje se poruka o grešci
if (!result) {
MessageBox.Show("Nekorektan unos u polje a", "Greška");
return;
}
result = double.TryParse(txtb.Text, out b);
if (!result) {
MessageBox.Show("Nekorektan unos u polje b", "Greška");
return;
}
double zbir = a + b;
lblzbir.Text = zbir.ToString();
}
U vežbi 28.6 obradili smo neke karakteristične slučajeve koji se javljaju prilikom pokušaja prihvatanja vrednosti iz kontrole Textbox i njene konverzije u numerički ekvivalent tako da ćemo ove obrasce koda , bez posebnih objašnjenja, koristiti u izradi narednih zadataka.
Kompletan kod projekta za vežba_28.6 možete preuzeti ovde.
28.7●Vežba(Kalkulator): Kreirati formu koja će omogućiti funkcionalnost veoma jednostavnog kalkulatora ( sa operacijama + , – , * , /). Forma bi trebalo da sadrži dva Texbox-a u koje se unose vrednosti operanada, četiri dugmeta za svaku aritmetičku operaciju Rezultat operacije upisati u Label sa tekstom Rezultat. Uz to na formi bi trebalo da postoje još dva dugmeta sa tekstom Zatvori i Poništi ( prazni sadržaj Label za rezultat i Textbox-ova za unos numeričkih vrednosti). Pre izvršenja operacije proveriti da li su podaci uneti u TextBox-ove za operande korektni. Korisnički interfejs je prikazan na Slika_28_8. Nadalje nećemo striktno definisati svojstva svake kontrole ( font, veličinu, poziciju…). Svojstva samostalno podesite |

Slika_38_8: Korisnički interfejs za vežba 28.7
Najpre napišimo kod za događaje Click za Button btnPonisti i btnZatvori, slično kao u predhodnim vežbama:
private void btnPonisti_Click(object sender, EventArgs e) {
txtx.Text = "";
txty.Text = "";
lblrezultat.Text = "...";
}
private void btnZatvori_Click(object sender, EventArgs e) {
Close();
}
Da bi smanjili kod i izbegli nepotrebno ponavljanje definisaćemo funkciju bool Validate(ref double x, ref double y) kojom najpre proveravamo da li je moguća konverzija tekstualnih vrednosti unetih u Textbox-ove txtx i txty u broj u pokretnom zarezu dvostruke tačnosti koristeći metodu double.TryParse. Ukoliko je konverzija uspešna povratna vrednost funkcije je true a u suprotnom false.
private bool Validate(ref double x, ref double y) {
if (!double.TryParse(txtx.Text, out x)) {
MessageBox.Show("Pogrešno uneta vrednost za x", "Greška");
return false;
}
if (!double.TryParse(txty.Text, out y)) {
MessageBox.Show("Pogrešno uneta vrednost za y", "Greška");
return false;
}
return true;
}
Na kraju, koristeći funkciju Validate, definišemo kod za događaj Click Button kontrola koje predstavljaju aritmetičke operacije.
private void btnPlus_Click(object sender, EventArgs e) {
double x = 0, y = 0;
if (!Validate(ref x, ref y)) return;
double zbir = x + y;
lblrezultat.Text = zbir.ToString("0.00");
}
private void btnMinus_Click(object sender, EventArgs e) {
double x = 0, y = 0;
if (!Validate(ref x, ref y)) return;
double razlika = x - y;
lblrezultat.Text = razlika.ToString("0.00");
}
private void btnPuta_Click(object sender, EventArgs e) {
double x = 0, y = 0;
if (!Validate(ref x, ref y)) return;
double proizvod = x * y;
lblrezultat.Text = proizvod.ToString("0.00");
}
private void btnPodeli_Click(object sender, EventArgs e) {
double x = 0, y = 0;
if (!Validate(ref x, ref y)) return;
if (y == 0) {
MessageBox.Show("Deljenje nulom nije dozvoljeno", "Greška");
return;
}
double kolicnik = x / y;
lblrezultat.Text = kolicnik.ToString("0.00");
}
Kompletan kod projekta za vežbu 28.7 možete preuzeti ovde.
Zadaci za vežbu
28.9●Zadatak(Obim i površina kruga): Kreirati formu pod imenom Main koja u naslovu ima tekst “Obim i površina kruga”. Forma ima TextBox sa pripadajućom Label-om sa tekstom “r=” za unos poluprečnika kruga. Takođe na formi postoje i dve Label-e u kojima treba da se ispišu obim i površina kruga (zaokruženo na dve decimale). Forma sadrži i tri dugmeta (Button) sa tekstom “Izračunaj” , “Poništi” i “Zatvori”. Klikom na prvo dugme vrši se izračunavanje obima i površine kao i upis rezultata u ta to namenjene labele. Klikom na drugo dugme u TextBox za unos poluprečnika kao i u Label-e za prikaz obima i površine upisuje se prazan string. Klikom na treće dugme zatvara se forma. Obavezno izvršiti proveru unete vrednosti u TextBox pre početka izračunavanja |
28.10●Zadatak(Kvadratni koren): Kreirati formu sa imenom Main koja u naslovu ima tekst “Kvadratni koren”. Forma sadrži Textbox i njemu pripadajuću Label-u sa tekstom “x=” i Label u kojoj treba da se ispiše kvadratni koren. Takođe na formi postoje i tri kontrole Button sa tekstom “Izračunaj” , “Poništi” i “Zatvori”. Klikom na ove kontrole treba omogućiti izračunavanje kvadratnog korena, upis praznog stringa u Textbox i Label za prikaz kvadratnog korena kao i zatvaranje forme. Obavezno izvršiti proveru unete vrednosti u TextBox pre početka izračunavanja. Vrednosti za broj je tipa double a vrednost kvadratnog korena prikazati sa dva decimalna mesta |
28.11●Zadatak(Heronov obrzac): Kreirati formu sa imenom Main koja u naslovu ima tekst “Površina trougla” i koja sadrži tri Textbox-a sa pripadajućim Label-ama u koje se unose vrednosti stranica trougla. Forma sadrži i Label-e u za prikaz površine trougla. Za izračunavanje površine trougla koristiti Heronov obrazac. Takođe na formi postoje i tri kontrole Button sa tekstom “Izračunaj” , “Poništi” i “Zatvori”. Klikom na ove kontrole treba omogućiti izračunavanje površine trougla , upis praznog stringa u Textbox i Label za prikaz površine trougla kao i zatvaranje forme. Obavezno izvršiti proveru unetih vrednosti u TextBox-ove pre početka izračunavanja. Vrednosti za broj je tipa double. Vrednost izračunate površine prikazati sa dva decimalna mesta |
28.12●Zadatak(Fibonači): Kreirati formu sa imenom Main koja u naslovu sadrži tekst “Fibonačijevi brojevi” koja sadrži Textbox za unos indeksa elementa niza koji želimo da izračunama i Label za prikaz tog elementa. Forma sadrži i tri kontrole Button sa tekstom “Izračunaj” , “Poništi” i “Zatvori” čija je funkcionalnost opisana u predhodnim zadacima. Zadatak rešiti: a) koristeći samorekurzivnu funkciju b) iteraciju (for naredba) c) Moivre-Binetovu formulu |
28.13●Zadatak(Rođendanski broj): Rođendanski broj je lepo formiran četvorocifreni broj. Prve dve cifre su dan rođenja osobe a poslednje dve mesec. Kreirati jednostavnu formu pod imenom Main koja u naslovu sadrži tekst “Rođendanski broj” i koja sadrži Texbox u koji korisnik unosi datum rođenja ( u formatu gggg-mm-dd). Klikom na Button sa textom “Prikaži” rođendanski broj se prikazuje koristeći MessageBox. Takođe, forma sadrži Button “Zatvori” koje je namenjeno zatvaranju forme. Pre izračunavanja rođendanskog broja proveriti tačnost unetog datuma rođenja to: Koristeći tip DateTime Koristeći funkciju za proveru validnosti unete vrednosti u Textbox |