You are on page 1of 23

1.

Napisati program koji omogućava da se promeni boja slova teksta koji je


ispisan na sredini forme. Ponudjena su tri dugmeta pri vrhu forme na kojima
pišu imena boja (npr. zelena, crvena, plava). Kada korisnik klikne na neko
dugme boja slova teksta se promene u odgovarajuću boju. Slova su upisana
u labeli.

private void btZeleno_Click(object sender, EventArgs e)


{
label1.ForeColor = Color.Green;
}

private void btPlavo_Click(object sender, EventArgs e)


{
label1.ForeColor = Color.Blue;
}

private void btCrveno_Click(object sender, EventArgs e)


{
label1.ForeColor = Color.Red;
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Left = (ClientRectangle.Width - label1.Width) / 2;
label1.Top = (ClientRectangle.Height - label1.Height) / 2;
}
2. Napisati aplikaciju u kojom se menja boja slova teksta prikazanog u objektu
klase Label ( kao u prethodnom zadatku) boju slova teksta korisnik bira iz
padajućeg menija.

private void crvenaToolStripMenuItem_Click(object sender, EventArgs e)


{
label1.ForeColor = Color.Red;
}

private void plavaToolStripMenuItem_Click(object sender, EventArgs e)


{
label1.ForeColor = Color.Blue;
}

private void zutaToolStripMenuItem_Click(object sender, EventArgs e)


{
label1.ForeColor = Color.Yellow;
}

private void zelenaToolStripMenuItem_Click(object sender, EventArgs e)


{
label1.ForeColor = Color.Green;
}

...

private void Form1_Load(object sender, EventArgs e)


{
label1.Left = (ClientRectangle.Width - label1.Width) / 2;
label1.Top = (ClientRectangle.Height - label1.Height) / 2;
}
3. Napisati aplikaciju kojom se klikom na dugme dugme pomera na slučajno
odabranu poziciju u oviru forme.

Random R = new Random();


private void button1_Click(object sender, EventArgs e)
{
button1.Left = R.Next(0, ClientRectangle.Width-button1.Width);
button1.Top = R.Next(0, ClientRectangle.Height-button1.Height);
}
private void button1_MouseEnter(object sender, EventArgs e)
{
button1.Left = R.Next(0, ClientRectangle.Width - button1.Width);
button1.Top = R.Next(0, ClientRectangle.Height - button1.Height);
}

4. Kreirati aplikaciju kojom se formirati spisak imena. Klikom na dugme korisnik


dodaje novo ime, prezime i godine osobe u objekta klase ListBox, ime
prezime i godine korisnik unosi korišćenjem objekta klase TextBox.
Obezbediti i dugme za brisanje sadržaja objekta klase ListBox.

private void btDodaj_Click(object sender, EventArgs e)


{
string ime = textBox1.Text;
string prezime = textBox2.Text;
int god = Convert.ToInt32(textBox3.Text);
listBox1.Items.Add(ime + " " + prezime + " " + god);
textBox1.Text = textBox2.Text = textBox3.Text = "";
textBox1.Focus();
}

private void btBrisi_Click(object sender, EventArgs e)


{
listBox1.Items.Clear();
textBox1.Text = textBox2.Text = textBox3.Text = "";
textBox1.Focus();
}
5. Kreirati aplikaciju kojom se formirati spisak imena. Klikom na dugme
korisnik dodaje novo prezime, srednje slovo ime i ime osobe u objekta klase
ListBox, ime, prezime i ime roditelja korisnik unosi korišćenjem objekta klase
TextBox. Obezbediti i dugme za pureñivanje podatak u objektu klase ListBox.

private void brDodaj_Click(object sender, EventArgs e)


{
string prezime = textBox1.Text;
string ime = textBox2.Text;
string roditelj = textBox3.Text;
listBox1.Items.Add(prezime + " " + roditelj[0] + ". " + ime);
textBox1.Text = textBox2.Text = textBox3.Text = "";
textBox1.Focus();
}
private void btUredi_Click(object sender, EventArgs e)
{ listBox1.Sorted = true; }

6. Kreirati aplikaciju kojom se


a) klikom na dugme menja boja pozadine forme (boju birati na slučajan način)
b) u pravilnim vremenskim intervalima pomera objekat klase Label ulevo,
brzinu pomeranja korisnik bira iz padajućeg menija.

Random R = new Random();


private void btBoja_Click(object sender, EventArgs e)
{
BackColor = Color.FromArgb(R.Next(256), R.Next(256), R.Next(256));
}
private void timer1_Tick(object sender, EventArgs e)
{
BackColor = Color.FromArgb(R.Next(256), R.Next(256), R.Next(256));
label1.Left += 10;
}
private void btKreni_Click(object sender, EventArgs e)
{ timer1.Start(); }

private void btStani_Click(object sender, EventArgs e)


{ timer1.Stop(); }

private void sporoToolStripMenuItem_Click(object sender, EventArgs e)


{ timer1.Interval = 1000; }

private void brzoToolStripMenuItem_Click(object sender, EventArgs e)


{ timer1.Interval = 500; }

private void najbrzeToolStripMenuItem_Click(object sender, EventArgs e)


{ timer1.Interval = 100; }
7. Napisati program koji broji unapred i unazad, sa mogućnošću da se zaustavi i
vrati na nulu.

int korak = 0;
int broj = 0;
private void btnapred_Click(object sender, EventArgs e)
{
korak = 1;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
broj = broj + korak;
label1.Text = Convert.ToString(broj);
}
private void btNazad_Click(object sender, EventArgs e)
{
korak = -1;
timer1.Start();
}
private void btPauza_Click(object sender, EventArgs e)
{
timer1.Stop();
}
private void btPonisti_Click(object sender, EventArgs e)
{
broj = 0;
label1.Text = Convert.ToString(broj);
timer1.Stop();
}
8. Krugovi sa centrom u centru forme,
maksimalnog poluprečnika, svake
sekunde se smanji poluprečnik za 5,
boja kruga se odreñuje na slučajan
način. Tajmer se zaustavi kada
poluprečnik kruga postane manji ili
jednak 0.

int xc, yc, r;


Random R = new Random();

private void timer1_Tick(object sender, EventArgs e)


{
Graphics g = CreateGraphics();
Pen olovka = new Pen(Color.Red,4);
olovka.Color = Color.FromArgb(R.Next(256), R.Next(256), R.Next(256));
g.DrawEllipse(olovka, xc - r, yc - r, 2 * r, 2 * r);
r = r - 10;
timer1.Enabled = r > 0;
}

private void Form1_Resize(object sender, EventArgs e)


{
Refresh();//osvezi formu - ako ima dogadjaj Paint poziva ga
//ako nema dogadjaj Paint brise ono sto je trenutno iscrtano
}

private void Form1_Paint(object sender, PaintEventArgs e)


{
xc = ClientRectangle.Width / 2;
yc = ClientRectangle.Height / 2;
r = Math.Min(xc, yc);
timer1.Enabled = true;
}
9. Krugovi sa centrom u centru forme,
svake sekunde se poluprečnik kruga
povećava za 5, početni krug je
poluprečnika 1. Krugovi se boje u
izabranoj boji (ColorDialog), koja je
prikazana kao boja pozadine objekta
klase PictureBox1. Tajmer se zaustavi
kada krug izañe iz granica forme.

int xc, yc, r;


Color boja = Color.Red;

private void timer1_Tick(object sender, EventArgs e)


{
Graphics g = CreateGraphics();
Pen olovka = new Pen(boja, 2);
g.DrawEllipse(olovka, xc - r, yc - r, 2 * r, 2 * r);
r += 5; //r = r + 5;
timer1.Enabled = r <= Math.Min(xc, yc);
}
private void Form1_Resize(object sender, EventArgs e)
{
Refresh();
xc = ClientRectangle.Width / 2;
yc = ClientRectangle.Height / 2;
r = 1;
timer1.Enabled = true;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
boja = colorDialog1.Color;
pictureBox1.BackColor = boja;
Refresh();
xc = ClientRectangle.Width / 2;
yc = ClientRectangle.Height / 2;
r = 1;
timer1.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
xc = ClientRectangle.Width / 2;
yc = ClientRectangle.Height / 2;
r = 1;
timer1.Enabled = true;
}
10. Kreirati aplikaciju kojom se realizuje sprej slično kao u Paint-u. U pravilnim
vremenskim intervalima se iscrtava 12 tačaka u boji koju je korisnik izabrao.
Tačke se biraju na slučajan način u okolini tačke na kojoj je pozicioniran miš
(na udaljenosti najviše 20 po obe koordinate tačke na kojoj je pozicioniran
miš). Izbor boje spreja realizovati korišćenjem objekta ColorDialog, izabrana
boja je prikazana kao boja pozadine objekta klase PictureBox.

int x, y;
SolidBrush cetka = new SolidBrush(Color.Black);
Random r = new Random();

private void Form1_MouseMove(object sender, MouseEventArgs e)


{
x = e.X;
y = e.Y;
}

private void timer1_Tick(object sender, EventArgs e)


{
Graphics g = CreateGraphics();

int x0 = r.Next(x - 20, x + 20);


int y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);
x0 = r.Next(x - 20, x + 20);
y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

x0 = r.Next(x - 20, x + 20);


y0 = r.Next(y - 20, y + 20);
g.FillEllipse(cetka, x0 - 1, y0 - 1, 2, 2);

private void pictureBox1_Click(object sender, EventArgs e)


{
colorDialog1.ShowDialog();
cetka.Color = colorDialog1.Color;
pictureBox1.BackColor = cetka.Color;
}

private void Form1_Load(object sender, EventArgs e)


{
timer1.Start();
}
11.Kreirati aplikaciju kojom se craju prskalice na poziciji na kaoju je korisnik
kliknuo.realizuje sprej slično kao u Paint-u. U pravilnim vremenskim
intervalima se iscrtava duž koja spaja tačku na koju je korisnik kliknuo
tačkom iz okoline tače na koju je korisnik kliknuo (na udaljenosti najviše 50
po obe koordinate tačke na kojoj je pozicioniran miš). Duži se prikazuju u
nijansama crvene boje (izbor nijanse na slučajan način).

int x, y;

private void Form1_MouseClick(object sender, MouseEventArgs e)


{
x = e.X;
y = e.Y;
timer1.Start();
}

Random r = new Random();

private void timer1_Tick(object sender, EventArgs e)


{
Graphics g = CreateGraphics();
Color boja = Color.FromArgb(r.Next(200, 256), r.Next(170), r.Next(100));
Pen olovka = new Pen(boja, r.Next(1, 5));

int x0 = r.Next(x - 50, x + 50);


int y0 = r.Next(y - 50, y + 50);

g.DrawLine(olovka, x, y, x0, y0);


}
12.Kreairati apkikaiju kojom se crtaju popunjeni pravougaonici u nijansama roze
boje u granicama forme. Pravougaonici se crtaju u pravilnim vremenskim
intervalima. Na slučajan način se bira dužina od 120 do 199, sirina od 20 do
69, i gornje desno teme pravougaonika. Obezbediti dugme za početak i za
zaustavljanje crtanja.

Random r = new Random();

private void timer1_Tick(object sender, EventArgs e)


{
Graphics g = CreateGraphics();
Color boja=Color.FromArgb(r.Next(20,150),
r.Next(150,256),r.Next(100),r.Next(150,256));
SolidBrush cetka = new SolidBrush(boja);
int a = r.Next(120, 200);
int b = r.Next(20, 70);
int x = r.Next(ClientRectangle.Width - a);
int y = r.Next(ClientRectangle.Height - b);
g.FillRectangle(cetka, x, y, a, b);
}

private void button1_Click(object sender, EventArgs e)


{
timer1.Start();
}

private void button2_Click(object sender, EventArgs e)


{
timer1.Stop();
}
13.Kreairati aplikaciju kojom se u pravilnim vremenskim intervalima crtaju 4
popunjena kruga u transparentnim slučajno odabranim bojama (alfa
parametar postaviti na 120). Za svaki krug izabrati poluprečnik na slučajan
način u granicama od 20 do 69. Krugove crtati tako da jedan dodiruje gornju,
jedan donju, jedab desnu a jedan levu ivicu forme.

private void Form1_Load(object sender, EventArgs e)


{
timer1.Start();
}

Random random = new Random();

private void timer1_Tick(object sender, EventArgs e)


{
int r = random.Next(20, 70);
int crvena = random.Next(256);
int zelena = random.Next(256);
int plava = random.Next(256);
SolidBrush cetka = new SolidBrush(Color.FromArgb(120,
crvena, zelena, plava));
int x = random.Next(r, ClientRectangle.Width - r);
int y = r;
Graphics g = CreateGraphics();
g.FillEllipse(cetka, x - r, y - r, 2 * r, 2 * r);
r = random.Next(20, 70);
crvena = random.Next(256);
zelena = random.Next(256);
plava = random.Next(256);
cetka.Color = Color.FromArgb(120, crvena, zelena, plava);
x = r;
y = random.Next(r, ClientRectangle.Height - r);
g.FillEllipse(cetka, x - r, y - r, 2 * r, 2 * r);

r = random.Next(20, 70);
crvena = random.Next(256);
zelena = random.Next(256);
plava = random.Next(256);
cetka.Color = Color.FromArgb(120, crvena, zelena, plava);
x = random.Next(r, ClientRectangle.Width - r);;
y = ClientRectangle.Height - r;
g.FillEllipse(cetka, x - r, y - r, 2 * r, 2 * r);

r = random.Next(20, 70);
crvena = random.Next(256);
zelena = random.Next(256);
plava = random.Next(256);
cetka.Color = Color.FromArgb(120, crvena, zelena, plava);
x = ClientRectangle.Width-r;
y = random.Next(r, ClientRectangle.Height - r);
g.FillEllipse(cetka, x - r, y - r, 2 * r, 2 * r);

private void Form1_Resize(object sender, EventArgs e)


{
Refresh();
}
14.Nacrtati zmaja, kao na slici.

private void Form1_Paint(object sender, PaintEventArgs e)


{
Graphics g = e.Graphics;
// ne treba u Paint-u g=CreateGraphics();
Pen olovka = new Pen(Color.Brown, 5);
int a=ClientRectangle.Width;
int b=ClientRectangle.Height;
g.DrawLine(olovka, a/2, 0,a/4,b/4);
g.DrawLine(olovka, a / 4, b / 4,a/2,b);
g.DrawLine(olovka, a / 2, b,3*a/4,b/4);
g.DrawLine(olovka, 3 * a / 4, b / 4,a/2,0);
olovka.Color = Color.Yellow;
olovka.Width = 2;
g.DrawLine(olovka, a/2,0,a/2,b);
g.DrawLine(olovka, a / 4, b/4, 3 * a / 4, b / 4);
}

private void Form1_Resize(object sender, EventArgs e)


{
Refresh(); // ponovo poziva Paint
}
15.Nadovezivanje duzi. Spajanje prethodne tačke na koju je korisnik kliknuo sa
tačkom na koju je sada kliknuo. Duži crtati slučajnom bojom, početi od
(0,0).

int x1=0,y1=0;
Random R = new Random();
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
Graphics g=CreateGraphics();
Pen olovka = new Pen(Color.Red,3);
olovka.Color = Color.FromArgb(R.Next(256),
R.Next(256), R.Next(256));
g.DrawLine(olovka, x1, y1, e.X, e.Y);
x1 = e.X;
y1 = e.Y;
}
16.Kreirati aplikaciju kojom se crtaju stepenice, počev od pozicije na koju je
korisnik kliknuo. Stepenice crtati, stepenik po stepenik u pravilnim
vremenskim intervalima. Stepenik se sastoji od vertikalne i horizonralne duži
svaka dužine 20piksela. Crtanje stepenica prekinuti kada stepenik izlazi iz
granica forme.

int x, y;
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
timer1.Enabled = true;

private void timer1_Tick(object sender, EventArgs e)


{
Graphics g = CreateGraphics();
Pen olovka = new Pen(Color.Blue);
g.DrawLine(olovka, x, y, x, y - 20);
g.DrawLine(olovka, x, y - 20,x+20,y-20);
x += 20;
y -= 20;
timer1.Enabled = x <= ClientRectangle.Width && y > 0;
}
17.Crtanje duži početak tačka definisana pozicijom kad je pritisnut taster miša
(MouseDown) kraj tačka definisana pozicijom kad je korisnik otpustio
taster miša (MouseUp).

int x1, y1;


private void Form1_MouseDown(object sender, MouseEventArgs e)
{
x1 = e.X;
y1 = e.Y;
}

private void Form1_MouseUp(object sender, MouseEventArgs e)


{
Graphics g = CreateGraphics();
Pen olovka = new Pen(Color.Red,3);
g.DrawLine(olovka, x1, y1, e.X, e.Y);
}
18.Spajamo tačku (0,0) sa tačkom na koju smo kliknulim MouseUp,debljina
linije se uvećava dok ne otpustimo taster miša MouseDown

int x, y;
Pen olovka = new Pen(Color.Red);
Random R = new Random();
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
olovka.Width = 1;
olovka.Color = Color.FromArgb(R.Next(256), R.Next(256), R.Next(256));
timer1.Start();
}

private void Form1_MouseUp(object sender, MouseEventArgs e)


{
timer1.Stop();
}

private void timer1_Tick(object sender, EventArgs e)


{
Graphics g = CreateGraphics();
g.DrawLine(olovka, 0, 0, x, y);
olovka.Width++;
}
19. Kreirati aplikaciju kojom se za dati trocifrenom broj prikazuju njegove cifre
u objketu klase ListBox.

private void btCifre_Click(object sender, EventArgs e)


{
int n = Convert.ToInt32(textBox1.Text);
listBox1.Items.Clear();
int a, b, c;
a = n % 10;
b = (n / 10) % 10;
c = (n / 100); // c=(n/100)%10
listBox1.Items.Add(a);
listBox1.Items.Add(b);
listBox1.Items.Add(c);
}
20.Kreirati aplikaciju kojom se od datog trocifrenog broja formira broj zapisan
istim ciframa u obrnutom poretku.

private void btOkreni_Click(object sender, EventArgs e)


{
int n = Convert.ToInt32(textBox1.Text);
int a, b, c;
a = n % 10;
b = (n / 10) % 10;
c = (n / 100) % 10;
n = a * 100 + b * 10 + c;
label2.Text = Convert.ToString(n);
}

21. Kreirati aplikaciju kojom se u datom prirodnom broju N (N>99)


a) odreñuje cifra stotina
b) izbacuje cifra stotina
c) zamenjuju cifra jedinica i cifra stotina
(od broja 27891 posle zamene dobijamo 27198)

private void btStotina_Click(object sender, Eve ntArgs e)


{
int n, c;
n = Convert.ToInt32(textBox1.Text);
c = (n / 100) % 10;
label2.Text = Convert.ToString(c);
}
private void btIzbaciStotine_Click(object sender, EventArgs e)
{
int n, a,b;
n = Convert.ToInt32(textBox1.Text);
a = n / 1000;
b = n % 100;
n = a * 100 + b;
label2.Text = Convert.ToString(n);

private void btZameni_Click(object sender, EventArgs e)


{
int n, a, c;
n = Convert.ToInt32(textBox1.Text);
a = n %10;
c = (n / 100) % 10;
n = n - c * 100 - a;
n = n + a * 100 + c;
label2.Text = Convert.ToString(n);
}
22. Kreirati aplikaciju koja na osnovu datog trenutka
početka emitovanja radio emisije (sat i minut) i date
dužine trajanja emisije izražene brojem minuta,
izračunava i prikazuje trenutak kada se emisija
završila. Sat i minut početka emisije, kao i dužina
trajanje emisije se unose korišćenjem kontrola
TextBox.

private void btKrajEmisije_Click(object sender, EventArgs e)


{
int sat, min, trajanje;
sat = Convert.ToInt32(textBox1.Text);
min = Convert.ToInt32(textBox2.Text);
trajanje = Convert.ToInt32(textBox3.Text);
min += trajanje; //min = min + trajanje;
sat += min / 60; //sat = sat + min / 60;
min %= 60; //min = min % 60;
sat %= 24; //sat = sat % 24;
lbRez.Text = Convert.ToString(sat)
+ ":" + Convert.ToString(min);
}
23. Kreirati aplikaciju u kojoj korisnik crta krugove. Jednim klikom na taster
miša se iscrta kružnica sa centrom u odabranoj tački i poluprečnika 30,
dvostukim klikom se iscrta obojen krug. Omogućiti da boja može da se bira iz
colorDialog-a.

private void pictureBox1_MouseClick(object sender, MouseEventArgs e)


{
Graphics g = pictureBox1.CreateGraphics();
Pen olovka = new Pen(pictureBox2.BackColor);
int x, y;
x = e.X;
y = e.Y;
g.DrawEllipse(olovka, x - 30, y - 30, 60, 60);
}
private void pictureBox1_MouseDoubleClick(object sender,
MouseEventArgs e)
{
Graphics g = pictureBox1.CreateGraphics();
SolidBrush cetka= new SolidBrush(pictureBox2.BackColor);
int x, y;
x = e.X;
y = e.Y;
g.FillEllipse(cetka, x - 30, y - 30, 60, 60);
}
24. Kreirati aplikaciju kojom se icrtava popunjen krug na mesto gde je korisnik
kliknuo (MouseDown) poluprecnika 5, svake sekunde se poluprecnik
povecava za 2 dok korisnik ne otpusti taster.

int x, y, r;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
x = e.X;
y = e.Y;
r = 5;
timer1.Start();
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = CreateGraphics();
SolidBrush cetka = new SolidBrush(Color.Red);
g.FillEllipse(cetka, x - r, y - r, 2 * r, 2 * r);
r += 2;
}

You might also like