Postoje dva osnovna načina da naš program „zna” kada je korisnik reagovao.
  • Jedan način je očitavanje stanja miša i tastature. Iz programa možemo da pitamo koja je trenutna pozicija miša, da li je neki taster trenutno pritisnut i slično.

  • Drugi način je korišćenje događaja. Moguće reagovati na doslovno svaku akciju korisnika, kao što je pritisak na taster miša ili tastature, otpuštanje tastera, pomeranje miša i slično. - Ovo smo najčešće koristili do sada.


Očitavanje tastera i pozicije miša

Jednostavan način da u našim C# programima saznamo koja dugmeta (tasteri) miša su pritisnuta u određenom trenutku je da koristimo svojstvo formulara MouseButtons. Ispitivanje vršimo poredeći vrednost ovog svojstva sa odgovarajućim konstantama.

Na primer, sledećom naredbom se proverava da li je pritisnuto levo dugme miša (pri tome ostala dugmad mogu a ne moraju biti pritisnuta u isto vreme):

if ((MouseButtons & MouseButtons.Left) > 0)
    // ...

Konstante koje odgovaraju pojedinim dugmetima miša su redom:

  • MouseButtons.Left za levo dugme

  • MouseButtons.Middle za srednje dugme (na mnogim miševima ovo je zapravo točkić, koji može i da se pritisne kao dugme)

  • MouseButtons.Right za desno dugme

Vrednosti svojstva MouseButtons su kombinacije ovih konstanti i zato datom if naredbom mi u stvari proveravamo da li svojstvo MouseButtons „sadrži” konstantu MouseButtons.Left. Jednostavniji uslov MouseButtons == MouseButtons.Left bi proveravao da li je trenutno pritisnuto isključivo levo dugme i nijedno više, što najčešće nije ono što nam treba. Na primer, ako je istovremeno pritisnuto levo i desno dugme, uslov naveden u if naredbi bi bio ispunjen, a ovaj drugi ne.


Na Petlji postoje lekcije koje možemo da iskoristimo....

LINK: Očitavanje tastera i pozicije miša

Vežba 1: Crveni , Zeleni i plavi taster - radimo prvi deo zadatka, u kojem se klikom na levi taster miša dodaje crvena komponenta na pozadinsku boju forme, klikom na točkić se dodaje zelena komponenta na pozadinsku boju forme, a klikom na desni taster miša sa dodaje plava komponenta na pozadinsku boju forme. Ako se prestane sa klikom, odgovarajuće komponente boje pozadine se smanjuju.

Da se podsetimo: boja je predstavljena sa RGB - red, green, blue, i svaka komponenta može imati vrednost od 0 do 255. Ako su sve tri 0, onda je ukupna boja crna, a ako su sve tri 255 onda je ukupna boja bela. Sve ostale boje su negde "između".

Slobodno upotrebite kod koji se nalazi na pomenutij stranici smešak

Za one koji žele da znaju malčice više:

Kod kuće pokušajte da uredite i još neki primera sa te stranice.


Drugi deo zadatka:

Očitavanje tastature

Kada je potrebno da proverimo da li korisnik drži neki od tastera na tastaturi pritisnut, jedan od jednostavnijih načina je da  koristimo događaj KeyDown: Potražite ga u događajima za Form1 i dvoklikom generišite događaj:

  private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            label2.Text = e.KeyCode.ToString();
     //     label3.Text = "X = " + label2.Text;

            if (e.KeyCode.ToString() == "L")
                Application.Exit();
        }

U ovom slučaju će se za pritisnut taster prikazati koji je u Labeli1.

Ako je pritisnut taster L - izlazi se iz aplikacije (verijanta koju je predložila druga grupa).


Treći deo zadatka: dodati labelu u kojoj će se prikazivati trenutna pozicija miša:

label4.Text = "pozicija miša je " + MousePosition.X.ToString() + ", " + MousePosition.Y.ToString();

Direktni linkovi ka Petlji i zanimljivim zadacima:


Poslednja izmena: петак, 9. фебруар 2024, 18:25