0% found this document useful (0 votes)
32 views26 pages

Windows Forms - Uvod

The document provides an introduction to Windows Forms in C#. It discusses how to open a new project, add controls like buttons and labels to a form via drag and drop, set the properties of controls, and add event handlers by double clicking controls or selecting events in the Properties window. The event handlers contain code that will run when events occur. Several examples are provided that demonstrate how to use different controls and events to create simple applications.

Uploaded by

Dragojlo Matic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views26 pages

Windows Forms - Uvod

The document provides an introduction to Windows Forms in C#. It discusses how to open a new project, add controls like buttons and labels to a form via drag and drop, set the properties of controls, and add event handlers by double clicking controls or selecting events in the Properties window. The event handlers contain code that will run when events occur. Several examples are provided that demonstrate how to use different controls and events to create simple applications.

Uploaded by

Dragojlo Matic
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Windows Forms - uvod

Startovanjem programa C# otvara nam se glavni prozor.Iz menija File biramo File/New project.
Ako nisu prisutni na ekranu, pomoću View otvaramo ToolBox i Properties.

Na glavnu formu Form1 dovlačimo kontrole (Drag&Drop), pomeramo ih na željenu poziciju i


razvlačimo ih na željene dimenzije.
U Properties prozoru podešavamo njihova svojstva (pozicija, dimenzije, boja, ime…..). Svojstvo
Text je ono što se vidi na kontroli, a svojstvo Name je ono što predstavlja tu kontrolu u kodu
programa i mora da zadovoljava sve kriterijume kao nazivi promenljivih u C jeziku.

U Properties prozoru na kartici Events podešavaju se dogadjaji za datu


kontrolu (Click, Load, MouseUp…) U default događaj ulazi se još lakše,
dvostrukim klikom na kontrolu (za formu to je Load, za dugme Click…)

Izborom dogadjaja otvara se ulazna tačka za pisanje koda koja se nalazi na novoj kartici (ne
Form1.csDesign, već Form1.cs). Veliki deo koda generiše sam C#, a mi unosimo naredbe samo
na poziciju gde smo napravili dogadjaj.

Ovde se unosi kod

Prevodjenje programa vrši se naredbom BuildSolution, a startovanje, ako nema grešaka, pomoću
Debug, ili Start without debugging.

Projekat čuvamo naredbom Save All.Tu biramo poziciju (Browse) i naziv projekta.(Nema potrebe
da se bira opcija Create directory for solution.)
Forme i događaji

Primer 0događaj
Otvoriti novi projekat.

Na formi promeniti naziv Form1 u Primer dogadjaja


(svojstvo Text). Izabrati za formu događaj Clik i uneti
kodMessageBox.Show("Kliknuto je na formu!");

Prevesti program i startovati.

Primeti: skoro sav kod generiše sam C#. Mi pravimo


događaj i pišemo kod samo za uokvireni deo!

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace primer0
{
publicclass Form1 : System.Windows.Forms.Form
{
private System.ComponentModel.Container components = null;

public Form1()
{ InitializeComponent(); }

………..

#region Windows Form Designer generated code


///<summary>
///Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///</summary>
.....
#endregion
///The main entry point for the application.
[STAThread]
staticvoid Main()
{
Application.Run(new Form1());
}
privatevoid Form1_Click(object sender, System.EventArgs e)
{
MessageBox.Show("Kliknuto je na formu!");
}
}
}
Windows kontrole: Button, TextBox, Label, Timer

Primer 1 Pozdrav
1
3
Na formu dovući tri kontrole: labelu, textbox i dugme. 2
Izabrati za dugme događaj Clik (može samo 2xclick na dugme) i uneti
kodMessageBox.Show("Hello " + textBox1.Text);

Tokom dizajniranja podešavati svojstva forme i kontrola (boja slova, dimenzije, tekst, name…)

publicclass Form1 : System.Windows.Forms.Form


{
private System.Windows.Forms.Label label1; // 1
private System.Windows.Forms.TextBox textBox1; // 2
private System.Windows.Forms.Button button1; // 3
………

privatevoid button1_Click(object sender, System.EventArgs e)


{
MessageBox.Show("Hello " + textBox1.Text);
}
}
}

Primer 2 boja pozadine


(generator slučajnih brojeva)
Na formu dovući dugme.
Izabrati za dugme događaj Clik i uneti kod.

Primeti: ako se izabere veći intenzitet crvene, generisaće se


pretežno crveno-smeđe nijanse, ako se izabere najjača plava,
boje će biti plavo-ljubičaste…

publicpartialclassForm1 : Form
{
Random r=new Random(); //generator slucajnih brojeva
//ovaj red unosimo sami, r je globalna promenljiva
public Form1()
{
InitializeComponent(); //ovo je kod koji je generisao program...
}

privatevoid btBoja_Click(object sender, System.EventArgs e)


{
int crvena=r.Next(150);
int zelena=r.Next(170);
int plava=r.Next(150,256); //crvena i zuta su blede, a plava je tamnija
BackColor=Color.FromArgb(crvena,zelena,plava);
}
}
Primer 3 Razmena

Na formu dovući kontrole: dva textbox-a


(tbPrvi,tbDrugi) i dugmebtRazmeni.
Izabrati za dugme događaj Clik i uneti kod.
Primeti: uneti sadržaj je tekst (slova, cifre, spec. znaci...).

publicclassForm1 : System.Windows.Forms.Form
{
……
privatevoid btRazmeni_Click(object sender, System.EventArgs e)
{
string s=tbPrvi.Text;
tbPrvi.Text=tbDrugi.Text;
tbDrugi.Text=s;
}
}

Primer 4 Datum i vreme

Ovaj primer rešiti na dva načina


a) Događaj je za formu (Load) i tada se vreme ispiše samo jednom
b) Događaj je za tajmer (Tick) i tada se vreme ispisuje svakih 500ms na primer (zavisi kako
smo podesili svojstvo Interval za tajmer). Tajmer mora biti Enabled! Primeti: Tajmer se ne
vidi na formi!

namespace Sat
{
publicclassForm1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Label lbDatum; //ove dve labele su desnona formi
private System.Windows.Forms.Label lbVreme;
private System.Windows.Forms.Label label1; //ove dve labele su levo na formi
private System.Windows.Forms.Label label2;

privatevoid Form1_Load(object sender, System.EventArgs e)


//ili timer1_Tick!
{
lbDatum.Text=DateTime.Now.ToLongDateString();
lbVreme.Text=DateTime.Now.ToLongTimeString();
}
}
}
Primer 5 Jednostavni kalkulator
Na formu dovući kontrole kao na slici i podesiti svojstva.
Izabrati za dugme događaj Clik i uneti kod.

Try-catch sekvenca služi da se izbegne pucanje programa u


slućaju greške (ako se unese slovo umesto cifre ili kad se deli
sa nulom….)
Primeti: u C#-u svi podaci se unose kao tekst, pa se za
potrebe obrade konvertuju u brojeve, a za izlaz se ponovo
vraćaju u string.

Poslednja dva događaja služe da se izbriše rezultat čim


počnu da se menjaju ulazni podaci (ponovo će se videti korektan rezultat tek kad se klikne na
dugme).
Primeti: zbir nije morao da se ispiše u texbox-u, logičnije bi bilo da se to uradi u labeli.

namespace sabiranje
{
publicclassForm1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox tbPrviBroj;
private System.Windows.Forms.TextBox tbDrugiBroj;
private System.Windows.Forms.TextBox tbRezultat;
private System.Windows.Forms.Button btSaberi;
……..
privatevoid btSaberi_Click(object sender, System.EventArgs e)
{
try
{
double x,y,z;
x=Convert.ToDouble(tbPrviBroj.Text);
y=Convert.ToDouble(tbDrugiBroj.Text);
z=x+y;
tbRezultat.Text=Convert.ToString(z);
// moze i ovako: tbRezultat.Text=z.ToString();
}
catch
{ MessageBox.Show(" Neispravni podaci", "Greska"); }
}

private void tbPrviBroj_TextChanged(object sender, System.EventArgs e)


{ tbRezultat.Text=""; }

private void tbDrugiBroj_TextChanged(object sender, System.EventArgs e)


{ tbRezultat.Text=""; }
}
}
Drugi deo zadatka bi bio da se napravi kalkulator koji će imati 4 dugmeta: +, -, *, /. Za svako od
njih napraviti događaj, a kod se može kopirati. Jedina razlika je u operaciji z=x+y;z=x-y…
Primer 6: svojstva,
davanje imena kontrolama

Na formu dovući dugmad (btShrink, btGrow, btRed,


btBlue, btShow,BtHide).
Izabrati za događaje Clik i uneti kod.

private void Form1_Click(object sender, EventArgs e)


{
this.Height += 10;
this.Width += 10; //forma poraste za 10 piksela i po visini i po sirini
}
private void btShrink_Click(object sender, EventArgs e)
{
this.Height -= 10;
this.Width -= 10;
}
private void btGrow_Click(object sender, EventArgs e)
{
this.Height += 10;
this.Width += 10;
}

private void btRed_Click(object sender, EventArgs e)


{
this.BackColor = Color.Red; //nova boja forme
}
}
private void btBlue_Click(object sender, EventArgs e)
{
this.BackColor = Color.Blue; //nova boja forme
}

private void btHide_Click(object sender, EventArgs e)


{
btGrow.Visible = false;
btShrink.Visible = false;
btHide.Visible = false;
btRed.Visible = false;
btBlue.Visible = false;
btShow.Visible = true; //sve uklonimo sem Show
}
private void btShow_Click(object sender, EventArgs e)
{
btnGrow.Visible = true;
btnShrink.Visible = true;
btnHide.Visible = true;
btnRed.Visible = true;
btnBlue.Visible = true;
btnShow.Visible = false; //sve prikazemo sem Show
}
Primer 7: Obim i površina trougla
Na formu dovući 1 ili 2 dugmeta (za O i za P), 5 labela i 3
textbox-a kao na slici i podesiti svojstva.
Kontrole za unos se zovu tbA,tbB,tbC,a za ispis obima i
povrsine labele lO i lP.

Izabrati za dugme događaj Clik i uneti kod.

private void btIzracunaj_Click(object sender, EventArgs e)


{
try
{
double a, b, c,s,O,P;
// pretvaranje ulaznog teksta u brojeve
a = Convert.ToDouble(tbA.Text);
b = Convert.ToDouble(tbB.Text);
c = Convert.ToDouble(tbC.Text);

O = a + b + c;
s = O / 2;
P=Math.Sqrt(s*(s-a)*(s-b)*(s-c)); // funkcija koren zove se Math.Sqrt(…

lO.Text = "O=" + O.ToString("0.00"); // u labeli ispis teksta O= i na to dodat broj O


lP.Text = "P=" + P.ToString("0.00"); // ispis je na dve decimale

}
catch
{ MessageBox.Show(" Neispravni podaci", "Greska"); }
}

privatevoid tbA_TextChanged(object sender, EventArgs e)


{
lO.Text = "";
lP.Text = "";
}
}

Uneti try-catch sekvencu za slučaj pogrešnog unosa (slovo


umesto broja…)

Ako se menja sadržaj ulaznih textbox-


ova, brisati izlazne labele (napisati
jedan događaj, za tbA, a ostala dva za
tbB i tbC pridružiti sa liste događaja).

Kako bi se radilo sa dva dugmeta? Bila bi dva događaja, u jednom se računa obim, u drugom
površina.

Probaj da uradiš slične primere za računanje obima i površine ili površine i zapremine nekih
geometrijskih slika i tela.
Primer 8 Brojanje
Na formu dovući 4 dugmeta, textbox i tajmer kao na slici i
podesiti svojstva.
Izabrati za dugmad događaje Clik i uneti kod.

namespace Brojanje
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btNapred;
private System.Windows.Forms.Button btNazad;
private System.Windows.Forms.Button btZaustavi;
private System.Windows.Forms.Button btPonisti;
private System.Windows.Forms.Timer timer1;

public partial classForm1 : Form


{
int korak; //ovaj red unosimo sami, korak je globalna promenljiva
public Form1()
{
InitializeComponent(); //ovo je kod koji je generisao program...
}

// kod koji sledi unosimo sami po generisanju dogadjaja...

private void btNapred_Click(object sender, System.EventArgs e)


{ timer1.Enabled=true;
korak=1; }

private void btZaustavi_Click(object sender, System.EventArgs e)


{ timer1.Enabled=false; }

private void btNazad_Click(object sender, System.EventArgs e)


{ timer1.Enabled=true;
korak=-1; }

private void btPonisti_Click(object sender, System.EventArgs e)


{ tbBroj.Text="0";
timer1.Enabled=false; }

private void timer1_Tick(object sender, System.EventArgs e)


{
int broj=Convert.ToInt32(tbBroj.Text);
broj=broj+korak;
tbBroj.Text=broj.ToString();
}
}
}
Primer 9
Otvoriti novi projekat.
Na formu dovući tri labele, dva tekstbox-a i dugme.
Napraviti događaj za dugme.

privatevoid btIzracunaj_Click(object sender, EventArgs e)


{
try
{
double a, b, x;
a = Convert.ToDouble(tbA.Text);
b = Convert.ToDouble(tbB.Text);
if (a != 0)
{
x = -b / a;
lResenje.Text = "X=" + x.ToString("0.00");
}
elseif (a==0&&b==0) lResenje.Text = "Svako X je resenje!";
else lResenje.Text = "Jednacina je nemoguca!";
}
catch
{ MessageBox.Show("Ponovi unos", "Greska!"); }
}

privatevoid tbA_TextChanged(object sender, EventArgs e)


{
lResenje.Text = "";
}

Pridružiti događaj TextChanged i drugom textbox-u!


Za vežbu napraviti aplikaciju koja rešava kvadratnu jednačinu.
Primer 10 stepenovanje
Otvoriti novi projekat.
Na formu dovući tri labele, tri tekstbox-a i dugme.
Napraviti događaj za dugme.

private System.Windows.Forms.TextBox tBOsnova;


private System.Windows.Forms.TextBox tBEksponent;
private System.Windows.Forms.Button btIzracunaj;
private System.Windows.Forms.TextBox tBRezultat;
….
privatevoid btIzracunaj_Click(object sender, System.EventArgs e)
{ try
{
double a=Convert.ToDouble(tBOsnova.Text);
double b=Convert.ToDouble(tBEksponent.Text);
double c=1; //c je a na b
for (int i=0;i<b;i++) c*=a;
tBRezultat.Text=Convert.ToString(c);
}
catch
{ MessageBox.Show("Pogresni podaci!", "Greska"); }
}

privatevoid tBOsnova_TextChanged(object sender, System.EventArgs e)


{ tBRezultat.Clear(); }

Primer 11 Fibonačijevi brojevi


Otvoriti novi projekat.
Na formu dovući kontrole kao na slici.
Napraviti događaj za dugme.

privatevoid btIzracunaj_Click(object sender, EventArgs e)


{ try
{
int n, fp=1,fpp=1,f=1,i=3; //inicijalizacija
n = Convert.ToInt32(tbN.Text);
while(i++<=n) //izbor sledeceg fibonacijevog broja, f>n
{ f=fp+fpp; //f - Fibonacijev broj
fpp=fp; //fpp - 2.prethodnik f
fp=f;
}
lBroj.Text = "N-ti Fibonacijev broj je "+ f.ToString();
}
catch
{ MessageBox.Show("Ponovi unos", "Greska!"); }
}

privatevoid tbN_TextChanged(object sender, EventArgs e)


{ lBroj.Text = ""; }
Windows kontrole: GroupBox i Panel, radio dugme i CheckBox
Primer 1: Radio dugmad
Otvoriti novi projekat.
Na formu dovući GroupBox (staviti na
njega tri radio dugmeta, rbCrveno,
rbPlavo,rbZuto) i labelu lTekst (sadrži
tekst: Tekst u izabranoj boji).
Napraviti događaje za svako dugme.

Primeti da se pri pomeranju


GroupBox-a pomera njegov
kompletan sadržaj!

privatevoid rbCrveno_CheckedChanged(object sender, EventArgs e)


{ lTekst.ForeColor = Color.Red; }

privatevoid rbPlavo_CheckedChanged(object sender, EventArgs e)


{ lTekst.ForeColor = Color.Blue; }

privatevoid rbZuto_CheckedChanged(object sender, EventArgs e)


{ lTekst.ForeColor = Color.Yellow; }

Primer 2: CheckBox
Otvoriti novi projekat.

Na formu dovući dva


CheckBox-a (bold i italic) i labelu outputLabel (sadrži tekst: Pogledaj kako se menja font).
Napraviti događaje za svaki checkbox.

private System.Windows.Forms.CheckBox BoldCheckBox;


private System.Windows.Forms.CheckBox ItalicCheckBox;
private System.Windows.Forms.Label outputLabel;
...
privatevoid BoldCheckBox_CheckedChanged(object sender, System.EventArgs e)
{ // svojstvo Font ima tri argumenta: Name, Size, Style
outputLabel.Font=newFont(outputLabel.Font.Name,
outputLabel.Font.Size, // ovo ostaje kakvo je bilo
outputLabel.Font.Style ^ FontStyle.Bold);
// XILI, ako se promenilo stanje cekiranosti,
// ako je bilo bold, nece vise biti, a ako nije bilo bold, sada ce biti
}

privatevoid ItalicCheckBox_CheckedChanged(object sender, System.EventArgs e)


{
outputLabel.Font=newFont(outputLabel.Font.Name,
outputLabel.Font.Size,
outputLabel.Font.Style ^ FontStyle.Italic);
}
Primer 3: GroupBox i Panel

Otvoriti novi projekat.


Na formu dovući dva kontejnera
o GroupBox (staviti na njega dva dugmeta, hi i bye)
o Panel (da bude širi od forme, staviti na njega dva
dugmeta, left i right).

Napraviti događaje za svako dugme.

Prevesti program i startovati.


Primeti da se na panelu pojavljuju klizači!

private System.Windows.Forms.GroupBox GroupBox1;


private System.Windows.Forms.Panel mainPanel;
private System.Windows.Forms.Label messageLabel;
private System.Windows.Forms.Button hiButton;
private System.Windows.Forms.Button byeButton;
private System.Windows.Forms.Button leftButton;
private System.Windows.Forms.Button rightButton;
……..

privatevoid hiButton_Click(object sender, System.EventArgs e)


{
messageLabel.Text="Pritisnuto je dugme Dobar dan!";
}

privatevoid byeButton_Click(object sender, System.EventArgs e)


{
messageLabel.Text="Pritisnuto je dugme Dovidjenja!";
}

privatevoid leftButton_Click(object sender, System.EventArgs e)


{
messageLabel.Text="Pritisnuto je sasvim levo dugme!";
}

privatevoid rightButton_Click(object sender, System.EventArgs e)


{
messageLabel.Text="Pritisnuto je sasvim desno dugme!";
}
Ciklusi. Windows kontrole: Lista, Combobox

Primer 1: ciklusi, određivanje sume


Otvoriti novi projekat.
Na formu dovući kontrole kao na slici.
Napraviti događaje za radio dugmad.

private System.Windows.Forms.GroupBox groupBox1;


private System.Windows.Forms.Label lBrojN;
private System.Windows.Forms.TextBox tBBrojN;
private System.Windows.Forms.RadioButton rBSumaNParnih;
private System.Windows.Forms.RadioButton rBSumaParnih;
private System.Windows.Forms.RadioButton rBSumaKvadrata;
private System.Windows.Forms.RadioButton rBSuma1N;
private System.Windows.Forms.TextBox tBSuma;

privatevoid rBSumaNParnih_CheckedChanged(object sender, System.EventArgs e)


{ int n=Convert.ToInt32(tBBrojN.Text);
int i,s=0;
for(i=1, s=0; i<=n;i++)
s=s+2*i;
tBSuma.Text=s.ToString();
}
privatevoid rBSuma1N_CheckedChanged(object sender, System.EventArgs e)
{
int n=Convert.ToInt32(tBBrojN.Text);
int i,s;
for(i=1, s=0; i<=n;i++)
s=s+i;
tBSuma.Text=s.ToString();
}
privatevoid rBSumaKvadrata_CheckedChanged(object sender, System.EventArgs e)
{
int n=Convert.ToInt32(tBBrojN.Text);
int i,s;
for(i=1, s=0; i<=n;i++)
s+=i*i;
tBSuma.Text=s.ToString();
}
privatevoid rBSumaParnih_CheckedChanged(object sender, System.EventArgs e)
{
int n=Convert.ToInt32(tBBrojN.Text);
int i,s;
for(i=1, s=0; i<=n;s+=i,i+=2);
tBSuma.Text=s.ToString();
}
privatevoid tBBrojN_TextChanged(object sender, System.EventArgs e)
{
tBSuma.Text="";
rBSuma1N.Checked=false; rBSumaKvadrata.Checked=false;
rBSumaParnih.Checked=false; rBSumaNParnih.Checked=false; }
}
Primer 2: ciklusi,cifre broja
Otvoriti novi projekat.

Na formu dovući kontrole kao na slici.


Postaviti tBRezultat da bude Multiline.

Napraviti događaj za dugme.

private System.Windows.Forms.GroupBox groupBox1;


private System.Windows.Forms.TextBox tBn;
private System.Windows.Forms.CheckBox cBObrnut;
private System.Windows.Forms.CheckBox cBBrojPetica;
private System.Windows.Forms.CheckBox cBMaxCifra;
private System.Windows.Forms.CheckBox cBSumaCifara;
private System.Windows.Forms.CheckBox cBBrojCifara;
private System.Windows.Forms.Button btOdredi;
private System.Windows.Forms.TextBox tBRezultat;
private System.Windows.Forms.Label lbn;

privatevoid btOdredi_Click(object sender, System.EventArgs e)


{
int n=Convert.ToInt32(tBn.Text);
int c,s,bc,max,b5,x;
s=bc=max=b5=x=0;
while (n>0)
{
c=n % 10; //poslednja desna cifra
n/=10; //broj bez poslednje desne cifre
bc++; //broj cifara
if(c>max) max=c; //maksimalna cifra
if(c==5)b5++; //broj petica
s+=c; //suma cifara
x=x*10+c; //obrnuti broj
}
tBRezultat.Text="";
if (cBBrojCifara.Checked) tBRezultat.Text+="Broj cifara je "+ bc+"\r\n";
if (cBSumaCifara.Checked) tBRezultat.Text+="Suma cifara je "+ s+"\r\n";
if (cBMaxCifra.Checked) tBRezultat.Text+="Maksimalna cifra je "+ max+"\r\n";
if (cBBrojPetica.Checked) tBRezultat.Text+="Broj pojavljivanja cifre 5 je "+ b5+"\r\n";
if (cBObrnut.Checked) tBRezultat.Text+="Broj u obrnutom poretku cifara je "+ x+"\r\n";
}
privatevoid tBn_TextChanged(object sender, System.EventArgs e)
{
tBRezultat.Text="";
}
Primer 3: kontrola ComboBox, prosti delitelji broja

Otvoriti novi projekat.


Na formu dovući kontrole kao na slici.

Za kontrolu ComboBox sa nazivom cBIzborN u svojstvu


Collection uneti brojeve(1 do 30)

Napraviti događaj za dugme.

privatevoid btIzracunaj_Click(object sender, EventArgs e)


{
int n, i = 2; //i je delitelj broja n, proveravamo od dvojke, pa 3,4,…

n=cBIzborN.SelectedIndex+1; //numeracija u kombu ide 0,1,2…

while (n >= 2)
{
while (n % i == 0)
{
n /= i;
lBrojevi.Text+=i.ToString()+" ";
}
i++; //sledeci delitelj
}

privatevoid cBIzborN_SelectedIndexChanged(object sender, EventArgs e)


{
lBrojevi.Text = "";
}
Primer 4: listbox
Na formu dovući kontrole kao na slici (lista lBLista, tBUlaz; dugmad btDodaj, btBrisiStavku,
btIzbrisiListu i btIzlaz).
Izabrati događaj za dugmad.
Startovati program.

privatevoid btDodaj_Click(…)
{
lBLista.Items.Add(tBUlaz.Text);
tBUlaz.Clear();
tBUlaz.Focus();
}

privatevoid btIzbrisiListu_Click(…)
{
lBLista.Items.Clear();
tBUlaz.Focus();
}

privatevoid btBrisiStavku_Click(…)
{
if (lBLista.SelectedIndex != -1 )
lBLista.Items.RemoveAt(lBLista.SelectedIndex);
tBUlaz.Focus();
}

privatevoid btIzlaz_Click(object sender, System.EventArgs e)


{
Application.Exit();
}

Primer 5

Na formu dovući kontrolu listbox lBKodovi.


Izabrati događaj za formu.
Startovati program i u listi će se ispisati ASCII kod.

privatevoid Form1_Load(object sender, System.EventArgs e)


{
for(char ch='A';ch<='Z';ch++)
lBKodovi.Items.Add(" "+ch+"\t" +(int)ch+"\t"+
char.ToLower(ch)+"\t"+(int)char.ToLower(ch));
}
Primer 6: ciklusi, ispis brojeva u listi

Otvoriti novi projekat.


Na formu dovući kontrole kao na slici.
Napraviti događaje za radio dugmad.

private System.Windows.Forms.Label lBrojN;


private System.Windows.Forms.TextBox tBBrojN;
private System.Windows.Forms.ListBox lBBrojevi;
private System.Windows.Forms.GroupBox groupBox1;

private System.Windows.Forms.RadioButton rBOd1doN;


private System.Windows.Forms.RadioButton rBOdNdo1;
private System.Windows.Forms.RadioButton rBParni;
private System.Windows.Forms.RadioButton rBNeparni;
private System.Windows.Forms.RadioButton rBNParnih;

privatevoid rBOd1doN_CheckedChanged(object sender, System.EventArgs e)


{ if (rBOd1doN.Checked)
{ int N=Convert.ToInt32(tBBrojN.Text);
lBBrojevi.Items.Clear();
for(int i=1; i<=N;i++) lBBrojevi.Items.Add(i); }
}
privatevoid rBOdNdo1_CheckedChanged(object sender, System.EventArgs e)
{ if (rBOdNdo1.Checked)
{ int N=Convert.ToInt32(tBBrojN.Text);
lBBrojevi.Items.Clear();
for(int i=N; i>0;i--) lBBrojevi.Items.Add(i);}
}
privatevoid rBParni_CheckedChanged(object sender, System.EventArgs e)
{ if (rBParni.Checked)
{ int N=Convert.ToInt32(tBBrojN.Text);
lBBrojevi.Items.Clear();
for(int i=2; i<=N;i+=2) lBBrojevi.Items.Add(i); }
}
privatevoid rBNeparni_CheckedChanged(object sender, System.EventArgs e)
{ if (rBNeparni.Checked)
{ int N=Convert.ToInt32(tBBrojN.Text);
lBBrojevi.Items.Clear();
for(int i=1; i<=N;i+=2) lBBrojevi.Items.Add(i); }
}
privatevoid rBNParnih_CheckedChanged(object sender, System.EventArgs e)
{ if (rBNParnih.Checked)
{ int N=Convert.ToInt32(tBBrojN.Text);
lBBrojevi.Items.Clear();
for(int i=1; i<=N;i++) lBBrojevi.Items.Add(2*i); }
}
privatevoid tBBrojN_TextChanged(object sender, System.EventArgs e)
{
rBOd1doN.Checked=false; rBOdNdo1.Checked=false;
rBParni.Checked=false; rBNeparni.Checked=false;
rBNParnih.Checked=false; lBBrojevi.Items.Clear();
}
Primer 7: listbox i checked listbox
Na formu dovući kontrole kao na slici (lista
lBIzlaznaLista; i čekirana lista cBUlaznaLista).
Izabrati događaj za dugmad.
Startovati program.

privatevoid cBUlaznaLista_ItemCheck(…)
{
string stavka = cBUlaznaLista.SelectedItem.ToString();
if (e.NewValue == CheckState.Checked) // ako je stavka izabrana,
lBIzlaznaLista.Items.Add(stavka); // ide u izlaznu listu,
else lBIzlaznaLista.Items.Remove(stavka); // inace se brise
}
// Stavke se unose u listu rucno, na Items / Collection
// i postavlja se lista na CheckOnClick na true

Primer 7a
Na formu dovući kontrole kao na
slici (lista lstSelektovani; i čekirana lista
chkListaIzbora).
Izabrati događaj za dugme.
Startovati program.

privatevoid btnPrebaci_Click(…)
{
//Proveravamo da li postoji neki potvrdjeni element u kontroli CheckedListBox
if (this.chkListaIzbora.CheckedItems.Count>0)
{
//Ispraznimo kontrolu ListBox u koju stavljamo izabrani element
this.lstSelektovani.Items.Clear();
//Prodjimo u petlji kroz kolekciju CheckedItems kontrole CheckedListBox
//i dodajmo elemente u okvir Selected
foreach (string item inthis.chkListaIzbora.CheckedItems)
this.lstSelektovani.Items.Add(item.ToString());
//Ponistimo sve sto je potvrdjeno u kontroli checkedListBox
for (int i=0; i<this.chkListaIzbora.Items.Count; i++)
this.chkListaIzbora.SetItemChecked(i,false);
}
}
Primer 8
Na formu dovući kontrole kao na slici
(tBTemperatura; lBTemperatura; btDodaj; rBRaspon,
rBMin, rBMax, rBProsek; lIspis).
Izabrati događaj za dugme.
Da se ne bi prerano birala radiodugmad, na
GroupBox-u (gBIzbor) uključiti Enabled na false.
Startovati program.

privatevoid btDodaj_Click(…)
{
intt;
t= Convert.ToInt32(tBTemperatura.Text);
lBTemperatura.Items.Add(tBTemperatura.Text);

if(lBTemperatura.Items.Count==1) //postavljanje min i max na prvu unetu


min=max=t;
s=s+t; // dodavanje temperature zbiru s

if(t >max) max=t; // korekcija min i max


if(t < min) min=t;

gBIzbor.Enabled=true; //moze se birati tek kad se unese prva t


lIspis.Text=""; //priprema za unos nove t, sve se uncheck i brise
tBTemperatura.Text="";
tBTemperatura.Focus();
rBMax.Checked=rBMin.Checked=rBProsek.Checked=rBRaspon.Checked=false;
}

privatevoid rbProsek_CheckedChanged(object sender, System.EventArgs e)


{
if(rBProsek.Checked) //zbir se deli brojem temp u listi
{
float p=(float)s/lBTemperatura.Items.Count;
lIspis.Text=p.ToString("0.00");
}
}
privatevoid rbMax_CheckedChanged(object sender, System.EventArgs e)
{
if(rBMax.Checked)
lIspis.Text=max.ToString();
}
privatevoid rBMin_CheckedChanged(object sender, System.EventArgs e)
{
if(rBMin.Checked)
lIspis.Text=min.ToString();
}
privatevoid rbRaspon_CheckedChanged(object sender, System.EventArgs e)
{
if(rBRaspon.Checked)
lIspis.Text=(max-min).ToString();
}
Primer 9

Na formu dovući kontrole kao na slici


(tBVisina; lBVisine; btDodaj, btBrisi; lIspis).
Izabrati događaj za dugmad.
Startovati program.

publicpartialclassForm1 : Form
{
int S=0; // broj kosarakasa koji imaju visinu >195
..........
privatevoid btDodaj_Click(object sender, System.EventArgs e)
{
if(tBVisina.Text!="")
{
lBVisine.Items.Add(tBVisina.Text);
if (Convert.ToInt32(tBVisina.Text)>195)
S++; //ako je >195 uvecavamo S
double p=100.0*S/lBVisine.Items.Count; // odredjivanje i ispis %
lIspis.Text=p.ToString("0.00")+"% kosarkasa ima visinu >195cm";
tBVisina.Text="";
tBVisina.Focus();
}
}
privatevoid btBrisi_Click(object sender, System.EventArgs e)
{
if(lBVisine.SelectedIndex>=0)
{ // ako visina koju brisemo > 195 smanjujemo S za 1
if (Convert.ToInt32(lBVisine.SelectedItem)>195)
S--;
lBVisine.Items.RemoveAt(lBVisine.SelectedIndex);
double p; // odredjivanje i ispis trazenog procenta
if(lBVisine.Items.Count!=0)
p=100.0*S/lBVisine.Items.Count;
else p=0;
lIspis.Text=p.ToString("0.00")+"% kosarkasa ima visinu >195cm";
}
}
Stringovi
Primer 1: stringovi

Na formu dovući kontrole kao na slici (TextBox-ovi: tBIme, tBPrezime; CheckBox-ovi:


cBIme, cBPrezime, cBInicijali i labele, izlazna labela sa naglašenom bojom i veličinom slova,
lPrikaz).
Izabrati događaj za textbox-ove TextChanged.
Startovati program, menjati ulazne podatke.

privatevoid tbIme_TextChanged(object sender, System.EventArgs e)


{
// obavezno ovaj dogadjaj pridruziti i drugom textbox-u i na sva tri checkbox-a
string i=tBIme.Text;
string p=tBPrezime.Text;
if(cBInicijali.Checked)
{ // posmatramo samo prva slova imena i prezimena
if(i!="")
i=i.Substring(0,1);
if(p!="")
p=p.Substring(0,1);
}
if(cBIme.Checked && cBPrezime.Checked)
lPrikaz.Text=i+" "+p;
elseif(cBIme.Checked)
lPrikaz.Text=i;
elseif(cBPrezime.Checked)
lPrikaz.Text=p;
else lPrikaz.Text="";
}
}
Primer 2:
Na formu dovući kontrole kao na slici (tBRec, tBRecenica, btProveri, Label lRezultat).
Izabrati događaj za dugme.

privatevoid btProveri_Click(object sender, System.EventArgs e)


{
string s;
string rec=tBRec.Text;
string recenica=tBRecenica.Text;
rec=" "+rec+" "; // dodajemo " " na pocetku i kraju reci
recenica=recenica.Insert(recenica.Length-1," ");
// dodajemo " " pre interpukcijskog znaka za kraj recenice
recenica=" "+recenica; // dodajemo " " na pocetku recenice
rec=rec.ToLower(); // konvertujemo slova reci u mala slova
recenica=recenica.ToLower();// konvertujemo slova recenice u mala slova
// provera da li recenica sadrzi rec
if(recenica.IndexOf(rec,0,recenica.Length)<0)
lRezultat.Text="Rečenica ne sadrži traženu reč";
else lRezultat.Text="Rečenica sadrži traženu reč";
}
privatevoid tBRec_TextChanged(object sender, System.EventArgs e)
{ lRezultat.Text=""; }

Primer 3
Na formu dovući kontrole kao na slici
(tBImePrezime,btDodaj, liste lBIme, lBPrezime).
Izabrati događaj za dugme.Startovati program.
privatevoid btDodaj_Click(object sender, EventArgs e)
{
string s = tBImePrezime.Text,ime,prezime;
int pozPraznine=s.IndexOf(' ');
//pozicija praznine u stringu s
ime = s.Substring(0,pozPraznine);
//ime je deo s od pocetka do praznine
prezime = s.Substring(pozPraznine + 1);
//prezime je od praznine do kraja
lBIme.Items.Add(ime);// u list box ime dodaje se ime
lBPrezime.Items.Add(prezime); //u list box prezime
tBImePrezime.Text = ""; //brise se textbox
}
Vrste MessageBox-ova.
Primer4Vrste MessageBox-ova, klasa DialogResult

Otvoriti novi projekat.


Na formu dovući dva dugmeta.
Napraviti događaje za svako dugme.

Primeti koje argumente ima funkcija MessageBox.Show: ("tekst u dijalogu","tekst na naslovnoj


liniji”, MessageBoxButtons.VrstaDugmeta,MessageBoxIcon.VrstaIkone);
Ako se neki izostavi, prikazaće se default dijalog(bez ikone, samo sa OK dugmetom).

privatevoid button1_Click(object sender, EventArgs e) // za dugme pozdrav


{
MessageBox.Show("Zdravo!","pozdrav",
MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
// ima dugme OK i znak uzvika

privatevoid button2_Click(object sender, EventArgs e) // za dugme obrisi


{
DialogResult rez;
rez = MessageBox.Show("Da li zelite", "Brisanje",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
// ima dugmad YES i NO i znak pitanja
if (rez == DialogResult.Yes)
{
MessageBox.Show("Brisem!"); // ima samo dugme tekst, to je po default-u
obavezno

}
else
{
MessageBox.Show("Nista nisam uradila!");
}
Primer 5 radio dugmad i MessageBox ikone
Otvoriti novi projekat.
Na formu dovući dva GroupBox-a sa odgovarajućim radio
dugmadima, dve labele i dugme.
promptLabel
Napraviti događaj za dugme.
Definisati globalne promenljive iconType i buttonType.

private System.Windows.Forms.GroupBox groupBox1;


private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Button displayButton;

private System.Windows.Forms.RadioButton oKRB;


private System.Windows.Forms.RadioButton oKCancelRB;
private System.Windows.Forms.RadioButton abortRetryIgnoreRB;
displayLabel
private System.Windows.Forms.RadioButton yesNoCancelRB;
private System.Windows.Forms.RadioButton yesNoRB;
private System.Windows.Forms.RadioButton retryCancelRB;

private System.Windows.Forms.RadioButton errorRB;


private System.Windows.Forms.RadioButton exclamationRB;
private System.Windows.Forms.RadioButton informationRB;
private System.Windows.Forms.RadioButton questionRB;

private System.Windows.Forms.Label promptLabel;


private System.Windows.Forms.Label displayLabel;

publicpartialclassForm1 : Form
{
private MessageBoxIcon iconType=MessageBoxIcon.Error; // deklarisanje globalnih
private MessageBoxButtons buttonType=MessageBoxButtons.OK; // promenljivih

…….
// izbor tipa dugmeta; OK,Cancel, Abort, Retry, Ignore…
privatevoid buttonType_CheckedChanged(object sender, System.EventArgs e)
{
if (oKRB.Checked == true)
buttonType = MessageBoxButtons.OK;
if (abortRetryIgnoreRB.Checked == true)
buttonType = MessageBoxButtons.AbortRetryIgnore;
if (oKCancelRB.Checked == true)
buttonType = MessageBoxButtons.OKCancel;
if (yesNoCancelRB.Checked == true)
buttonType = MessageBoxButtons.YesNoCancel;
if (yesNoRB.Checked == true)
buttonType = MessageBoxButtons.YesNo;
if (retryCancelRB.Checked == true)
buttonType = MessageBoxButtons.RetryCancel;
}
// izbor tipa znaka; ? !...
privatevoid iconType_CheckedChanged(object sender, System.EventArgs e)
{
if (errorRB.Checked == true)
iconType = MessageBoxIcon.Error;
if (exclamationRB.Checked == true )
iconType = MessageBoxIcon.Exclamation;
if (informationRB.Checked == true)
iconType = MessageBoxIcon.Information;
if (questionRB.Checked == true)
iconType = MessageBoxIcon.Question;
}
// prethodni dogadjaji se pridruze svakom radio dugmetu na listi dogadjaja

privatevoid displayButton_Click(object sender, System.EventArgs e)


{
DialogResult result=MessageBox.Show("Izabrali ste ovakav Message Box",
"Izabrani Message Box",buttonType, iconType,0,0);
switch (result)
{
case DialogResult.OK: displayLabel.Text="OK je zatvorio MessageBox";break;
case DialogResult.Abort: displayLabel.Text="Abort je zatvorio MessageBox";break;
case DialogResult.Cancel: displayLabel.Text="Cancel je zatvorio
MessageBox";break;
case DialogResult.Retry: displayLabel.Text="Retry je zatvorio MessageBox";break;
case DialogResult.Ignore: displayLabel.Text="Ignore je zatvorio MessageBox";break;
case DialogResult.Yes: displayLabel.Text="Yes je zatvorio MessageBox";break;
case DialogResult.No: displayLabel.Text="No je zatvorio MessageBox";break;
}
}

You might also like