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: