19
VEŽBA 3: WINDOWS KONTROLE U C# Cilj ove vežbe je upoznavanje sa kreiranjem windows aplikacija (Windows Forms Application), sa dodavanjem windows kontrola (Windows Controls) i podešavanjem njihovih svojstava (Properties) i sa povezivanjem kontrola sa događajima (Events). Prvi deo: U prvom delu vežbe, nakon startovanja MS Visual Studia 2008, potrebno je otvoriti novi projekat tipa windows aplikacija pod imenom Vezba1, kao što je prikazano na slikama 1 i 2. Slika 1. Otvaranje novog projekta u MS Visual studiju 2008

VEŽBA 3: WINDOWS KONTROLE U C#vtsnis.edu.rs/wp-content/plugins/vts-predmeti/uploads/1539069789Vezba... · ugrađene funkcije koja prikazuje sistemsko vreme i datum. Pored toga, demonstrira

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

VEŽBA 3: WINDOWS KONTROLE U C#

Cilj ove vežbe je upoznavanje sa kreiranjem windows aplikacija (Windows Forms Application), sa dodavanjem windows kontrola (Windows Controls) i podešavanjem njihovih svojstava (Properties) i sa povezivanjem kontrola sa događajima (Events). Prvi deo: U prvom delu vežbe, nakon startovanja MS Visual Studia 2008, potrebno je otvoriti novi projekat tipa windows aplikacija pod imenom Vezba1, kao što je prikazano na slikama 1 i 2.

Slika 1. Otvaranje novog projekta u MS Visual studiju 2008

Slika 2. Izbor tipa projekta, u ovom slučaju (Windows Forms Application)

Nakon izbora tipa tipa projekta otvara se prozor prikazan na slici 3, u kome je po defaultu kreirana forma pod nazivom Form1.

Slika 3. Izgled prozora u kome se nalazi forma Form1

Forma Form1, koja je

kreirana po defaultu.

Zatim je na formu Forma1 potrebno postaviti windows kontrolu tipa dugme (Button), čijim se klikom aktivira prozor na kome je ispisana poruka “Zdravo svete !!!”. Prvo je potrebno iz Toolbox-a, koji se aktivira iz View menija izborom opcije Tollbox, slika 4, izabrati windows kontrolu tipa button i dodati je na formu Form1, kao što je prikazano na slikama 5 i 6.

Slika 4. Izbor opcije za prikaz Toolbox-a

Slika 5. Izbor button kontrole iz Toolbox-a

Toolbox iz koga se biraju

windows kontrole koje se

dodaju na formu.

Slika 6. Izgled forme nakon dodavanja kontrole tipa button

Dvoklikom na kontrolu button1 otvara se prozor u kome je potrebno definisati događaj koji de se aktivirati kada se klikne na kontrolu, slika 7. U ovom slučaju potrebno je otvoriti prozor sa porukom (MessageBox) i u njemu ispisati poruku “Zdravo svete !!!”, pomodu komande: MessageBox.Show("Zdravo Svete!!!");

Po defaultu svojstva Text i

Name button kontrole su

postavljena na button1.

Prozor u kome se

postavljaju i menjaju

svojstva selektovane

kontrole.

Slika 7. Prozor u kome je potrebno definisati događaj koji de se aktivirati kada se klikne na kontrolu button1

Nakon toga potrebo je kompajlirati i startovati aplikaciju, na način koji je detaljno opisan u Vežbi 1. Klikom na dugme button1 prikazade se prozor kao na slici 8.

Slika 8. MessageBox sa porukom koji se aktivira klikom na button1

Ovde se vrši definisanje događaja koji se aktivira

klikom na button1:

MessageBox.Show("Zdravo Svete!!!");

MessageBox sa porukom

koji se aktivira klikom na

button1.

Koji su sve programski jezici podržani u Microsoft Visual Studio razvojnom okruženju?

_____________________________________________________________________________________

_____________________________________________________________________________________

Koje tipove aplikacija podržava Microsoft Visual Studio razvojno okruženje?

_____________________________________________________________________________________

_____________________________________________________________________________________

Čemu služi Intellisense alat u okviru radnog prozora?

_____________________________________________________________________________________

_____________________________________________________________________________________

Kako se vrši pokretanje Debug programa za otkrivanje grešaka?

_____________________________________________________________________________________

_____________________________________________________________________________________

Šta se prodrazumeva pod Microsoft Intermediate Language (skradeno MSIL) tehnologijom?

Drugi deo:

U drugom delu vežbe vrši se upoznavanje se sa svojstvima formi i padajudih menija. Demonstrira se da

se jedno svojstvo može postaviti na više načina, usled učitavanja forme, usled promene nekog drugog

svojstva ili usred događaja.

Potrebno je kreirati padajudi meni na glavnoj formi preko koga biramo koje de se nove forme prikazati.

Potrebno je izvršiti modalni i nemodalni prikaz formi, korišdenjem skradenica na tastaturi, a zatim ih

manuelno i automatski maksimizirati.

Korak 1: Otvoriti projekat tipa Windows Forms Application pod imenom Vezba2 i preimenovati formu Form1 u Glavna forma, slika 9. Realizovati na glavnoj formi, dodavanjem MenuStrip kontrola iz Toolbox-a slededu strukturu padajudeg menija:

1. Koreni meni: Prikazati1, podmeni: (Forma1, Forma2, Kraj programa) 2. Koreni meni: Prikazati2, podmeni: (Forma3, Forma4 )

Kod kojim se definiše događaj koji

se aktivira kada se klikne na stavku

Forma1 u meniju Prikazati1.

Slika 9. Izgled glavne forme sa padajudm menijima

Korak 2: Kreirati za svaku stavku padajudeg menija istoimenu formu, osim za Kraj programa za koju treba

napisati kod za završetak aplikacije.

Korak 3: Forme iz stavke menija Prikazati1 prikazati u modalnom obliku a forme iz stavke menija

Prikazati2 prikazati u nemodalnom obliku.

private void forma1ToolStripMenuItem_Click(object sender, EventArgs e)

{

Forma1 frm1 = new Forma1();

frm1.ShowDialog();//modalni prikaz forme1

}

private void forma2ToolStripMenuItem_Click(object sender, EventArgs e)

{

// Modalni prikaz forme2, metoda ShowDialog()

Forma2 frm2 = new Forma2();

frm2.ShowDialog();

}

private void forma3ToolStripMenuItem_Click(object sender, EventArgs e)

{

// Nemodalni prikaz nove forme pomoću metode Show

Forma3 frm3 = new Forma3();

frm3.Show();

}

private void forma4ToolStripMenuItem_Click(object sender, EventArgs e)

{

// Nemodalni prikaz nove forme

Forma4 frm4 = new Forma4();

frm4.Show();

}

Korak 4: Postaviti skradenice sa tastature preko svojstava kontrola MenuStrip kombinacijom ALT +

podvučeno slovo iz stavke menija.

Korak 5: Formama Forma3 i Forma4 postaviti svojstvo WindowState na vrednost Maximazed i to za

formu Forma3 u okviru događaja Forma3_load(), a za formu Forma4 preko dugmeta button1 i

događaja Click.

private void Forma3_Load(object sender, EventArgs e)

{

//postavljamo vrednost za maksimiziranje forme i to u dogadjaju forma3_load

this.WindowState = FormWindowState.Maximized;

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

// po pritisku na dugme forma Forma4 se razvlaci po celom ekranu

this.WindowState = FormWindowState.Maximized;

}

Komentarisati svaki red prikazanog programskog koda.

Forma1 frm1 = new Forma1(); _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

frm3.Show(); _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

frm2.ShowDialog(); _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

this.WindowState = FormWindowState.Maximized; _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

U čemu je razlika između modalnih i nemodalnih formi? _____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Kako se postavljaju skradenice sa tastature za pristup stavkama menija? _____________________________________________________________________________________

_____________________________________________________________________________________

Treći deo:

U tredem delu vežbe vrši se upoznavanje se korišdenjem tajmer (Timer) kontrole. Vrši se pozivanje

ugrađene funkcije koja prikazuje sistemsko vreme i datum. Pored toga, demonstrira se i upotreba

listboks (ListBox), tekstboks (TextBox) i label (Label) kontrola.

Potrebno je kreirati aplikaciju (korišdenjem strukture padajudeg menija) koja prikazuje trenutno vreme,

realizuje štopericu i vrši odbrojavanje od zadatog vremena do nule.

Korak 1: Otvoriti projekat windows aplikacija pod imenom Vezba3 i preimenovati formu Form1 u Glavna

forma. Realizovati na glavnoj formi slededu strukturu padajudeg menija:

Koreni meni: Izaberi.

Podmeni: Prikaži vreme i datum, Štoperica, Odbrojavanje, Kraj programa.

Preko stavki menija aktivirati (modalno) nove forme i to za :

- Prikaži vreme i datum: formu pod imenom Vreme.

- Odbrojavanje: formu pod imenom Odbrojavanje.

- Štoperica: formu pod imenom Stoperica .

Korak 2: U formi Vreme postaviti sledede kontrole: Tajmer i labelu. Tajmeru postaviti svojstva interval na

vrednost 100 i enabled na true, što znači da de se događaj Tick (brojanje) izvršavati svakih 100 mili

sekundi. Obezbediti prikaz vremena preko svojstva text label kontrole (label1.text), slika 10.

Slika 10. Prikaz tekudeg vremena i datuma

private void timer1_Tick(object sender, EventArgs e)

{

// ovde obezbedjujemo da nam se pojavi vreme i datum zajedno

// Koristili smo metodu ToString da bi mogli da dodelimo

// vrednost objektu label1

label1.Text = DateTime.Now.ToString();

}

Korak 3: U formi Odbrojavanje postaviti sledede kontrole: 3 tekstboksa, 2 dugmeta, 3 labele i jedan

tajmer sa svojstvom enabled postavljenim na false, slika 11. Definisati privatne promenjive sekunde,

minuti i sati, integer tipa. Postaviti interval svojstvo tajmera na 1000. Preko dugmeta 1 aktivirati brojač

kojim se vrši odbrojavanje od zadatog vremena do nule. Preko dugmeta 2 resetovati sve brojače na nulu.

Tekstboksove koristiti za vizuelni prikaz stanja odbrojavanja. Kad vrednosti sekunde, minuti i sati

postignu vrednost nula aktivirati poruku: „Vreme je isteklo!!!“, slika 12.

Slika 11. Izgled forme Odbrojavanje

Slika 12. Izgled forme Odbrojavanje nakon isteka zadatog vremena

private int sekunde;//neophodno je definisati promenjive tipa integer

private int minuti; // radi korišćenja ugrađene klase datetime

private int sati;

private void timer1_Tick(object sender, EventArgs e)

{

if (sekunde == 0 & minuti == 0 & sati == 0)

{

timer1.Enabled = false; // kad se ispuni uslov tajmer prestaje sa

//radom i pojavljuje se poruka

MessageBox.Show("Vreme je isteklo");

}

if (sekunde == 0 & minuti == 0 & sati != 0)

{

sati--;//Dekrement sati jer su sekunde i minuti istekli

// a sati ima još

textBox3.Text = sati.ToString();

minuti = 59; //rasitnili smo jedan sat

sekunde = 59;

textBox2.Text = minuti.ToString();

//dodeljivanje vrednosti radi

//prikaza vrednosti promenjivih tipa string

textBox1.Text = sekunde.ToString();

}

if (sekunde == 0 & minuti != 0)

{

minuti--;

//sati su istekli ,sekunde su istekle ali minuta ima jos

textBox2.Text = minuti.ToString ();

sekunde = 59;

textBox1.Text = sekunde.ToString ();

}

sekunde--;//ostale su još sekunde za odbrojavanje

textBox1.Text = sekunde.ToString();

}

private void button1_Click(object sender, EventArgs e)

{

timer1.Enabled = true;

sekunde = System.Int32.Parse(this.textBox1.Text);

minuti = System.Int32.Parse(this.textBox2.Text);

sati = System.Int32.Parse(this.textBox3.Text);

}

private void button2_Click(object sender, EventArgs e)

{

sekunde = 0 ;

minuti = 0 ;

sati = 0;

//Isključuje se tajmer , vrednosti se vraćaju na nulu

textBox1.Text = sekunde.ToString();

textBox2.Text = minuti.ToString();

textBox3.Text = sati.ToString();

timer1.Enabled = false;

}

Korak 4: U formi Stoperica postaviti sledede kontrole: 3 dugmeta, 1 tajmer, 1 listboks i 4 labele.

Definisati 4 promenjive integer tipa: desetinke, sekunde, minute i sate. Ove promenjive prikazivati preko

4 label kontrole. Drugo dugme se koristi za beleženje trenutnog proteklog vremena u listboksu, prvo

dugme za inicijalizaciju promenjivih tj. postavljanje svih vrednosti na 0 i pokretanje tajmera kojim se

realizuje štoperica. Trede dugme se koristi za zaustavljanje tajmera i prekid rada štoperice. Izgled forme

Stoperica prikazan je na slici 13.

Slika 13. Izgled forme Stoperica sa potrebnim kontrolama

private void button2_Click(object sender, EventArgs e)

{

//Očistiti listboks ,sve vrednosti promnjivih

listBox1.Items.Clear();

sati = 0;

sekunde = 0;

minuti = 0;

label1.Text = "0";

label2.Text = "0";

label3.Text = "0";

timer1.Enabled = true;

}

private void button1_Click(object sender, EventArgs e)

{

// pritisak na dugme unosimo trenutne vrednosti promenjivih

listBox1.Items.Add(label3.Text + " sati " + label2.Text + " minuta "

+ label1.Text + " sekunda " + label4 .Text + " desetinki ");

}

private void button3_Click(object sender, EventArgs e)

{

// prekid rada stoperice

timer1.Enabled = false;

}

private void timer1_Tick(object sender, EventArgs e)

{

if (desetinke > 8)

// zaostatak od dve desetinke iz razloga

// sto iteracija petlje zahteva neko malo vreme

{

sekunde++;

desetinke = 0;

}

if (sekunde > 59)

{

minuti++;

sekunde = 0;

}

if (minuti > 59)

{

sati++;

minuti = 0;

}

desetinke++;

label4.Text = desetinke.ToString();

label1.Text = sekunde.ToString();

label2.Text = minuti.ToString();

label3.Text = sati.ToString();

}

Komentarisati svaki red prikazanog programskog koda.

sekunde = System.Int32.Parse(this.textBox1.Text);

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

timer1.Enabled = false;

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

textBox2.Text = minuti.ToString();

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

listBox1.Items.Add(label3.Text + " sati " + label2.Text + " minuta " +

label1.Text + " sekunda " + label4 .Text + " desetinki ");

label1.Text = DateTime.Now.ToString();

Testirati program odbrojavanje za slučajeve kada unesemo vrednosti u polja sati, minute i sekunde: 0 0

0, 0 1 2 i 1 1 3 respektivno, a potom pritisnemo taster start. Uočiti nedostatake a zatim ispraviti

programski kod tako da program daje tačne rezultate.

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Četvrti deo:

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

Slika 14. Izgled programa

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

Slika 15. Sakrivanje text box-a

// poziv metode Clear() za brisanje sadrzaja text box-a textBox1.Clear(); // poziv metode AppendText() za dodavanje sadrzaja u text box textBox1.AppendText("Odabrali ste :" + Environment.NewLine); if (checkBoxDorucak.Checked) textBox1.AppendText("dorucak" + Environment.NewLine); if (checkBoxRucak.Checked) textBox1.AppendText("rucak" + Environment.NewLine); if (checkBoxVecera.Checked) textBox1.AppendText("vecera" + Environment.NewLine);

Komentarisati svaki red prikazanog programskog koda. textBox1.Visible == false

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

if (checkBoxDorucak.Checked)

_____________________________________________________________________________________

_____________________________________________________________________________________

____________________________________________________________________________________

if (textBox1.Visible == false) textBox1.Visible = true; else textBox1.Visible = false;

textBox1.AppendText("vecera" + Environment.NewLine);

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Peti deo:

Napraviti windows aplikaciju, koja de imati jednu formu sa tri radio dugmeta, smeštenih u jedan group box, zatim jedno dugme i jedan text box (multiline), slika 16.

Slika 16. Izgled programa

Pritiskom na dugme "Rezervisi", u text box-u se ispisuje odgovarajuda poruka korisniku. Samo jedno radio dugme u jednom trenutku može biti selektovano.

Kod za dugme rezervisi:

U Nišu POTVRĐUJE