Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1...

35
Uvod u programiranje Uvod u programiranje Programiranje 1 (550) Programiranje 1 (550) Poglavlje 8 Poglavlje 8 Windows forme Windows forme 1 dr dr. . sc sc. Josip Musić . Josip Musić jmusic [email protected] fesb.hr Originalne Originalne slideove slideove izradio: izradio: Teo Teo Žuljević Žuljević, , dipl dipl. ing. . ing. teo.zuljevic [email protected] fesb.hr Windows forme Windows forme

Transcript of Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1...

Page 1: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Uvod u programiranjeUvod u programiranjeProgramiranje 1 (550)Programiranje 1 (550)

Poglavlje 8Poglavlje 8

Windows formeWindows forme

1

drdr. . scsc. Josip Musić. Josip Musićjmusicjmusic@@fesb.hrfesb.hr

Originalne Originalne slideoveslideove izradio:izradio:Teo Teo ŽuljevićŽuljević, , dipldipl. ing.. ing.teo.zuljevicteo.zuljevic@@fesb.hrfesb.hr

Windows formeWindows forme

Page 2: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

PregledPregledModel dogañaja u .NET FrameworkuModel dogañaja u .NET Frameworku--uu

Što je rukovatelj dogañajaŠto je rukovatelj dogañaja??

Handles kljuključčna rijena riječč

Windows formaWindows formaHijerarhija klasa Windows formiHijerarhija klasa Windows formi

Korištenje svojstava foKorištenje svojstava forrmeme

Korištenje postupaka formeKorištenje postupaka forme

Korištenje dogañaja formeKorištenje dogañaja forme

Životni ciklus formeŽivotni ciklus forme

2

Životni ciklus formeŽivotni ciklus forme

Korištenje standardnih dijaloških okviraKorištenje standardnih dijaloških okvira

Kontrole Windows formiKontrole Windows formiDodavanje i ureñivanje kontrola na formiDodavanje i ureñivanje kontrola na formi

Korištenje kontrola formiKorištenje kontrola formi

Hijerarhija klasa kontrola formeHijerarhija klasa kontrola forme

Korištenje svojstava i postupaka kontrolaKorištenje svojstava i postupaka kontrola

Dodavanje kontrola za vrijeme izvoñenjaDodavanje kontrola za vrijeme izvoñenja

Rukovanje dogañajima mišaRukovanje dogañajima miša

Rukovanje dogañajima tipkovniceRukovanje dogañajima tipkovnice

Provjera korisničkog unosaProvjera korisničkog unosa

Page 3: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Model dogañaja u .NET FrameworkModel dogañaja u .NET Framework--uu

Dogañaji se koriste za signalizaciju nastanka neke akcije.Dogañaji se koriste za signalizaciju nastanka neke akcije.

Pošiljatelj i primatelj dogañaja.Pošiljatelj i primatelj dogañaja.

Delegiranje i Delegiranje i Handles

3

DelegiranjeDelegiranje Delegiranje poziva Delegiranje poziva pridruženu orocedurupridruženu oroceduru

Poziva se Poziva se delegiranjedelegiranje

Page 4: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Što je rukovatelj dogañaja?Što je rukovatelj dogañaja?

Rukovatelj dogañaja je isječak koda koji se poziva kada je Rukovatelj dogañaja je isječak koda koji se poziva kada je pripadajući dogañaj podignutpripadajući dogañaj podignut

postupak povezan s odreñenim dogañajempostupak povezan s odreñenim dogañajem

kada je dogañaj podignut, kod unutar rukovatelja se izvodikada je dogañaj podignut, kod unutar rukovatelja se izvodi

Dva argumenta dogañaja u rukovateljuDva argumenta dogañaja u rukovatelju

4

sender -- predstavlja objekt koji je podigao dogañajpredstavlja objekt koji je podigao dogañaj

e –– objekt dogañaja koji sadrži dogañaju specifične informacije.objekt dogañaja koji sadrži dogañaju specifične informacije.

različiti tipovirazličiti tipovi

EventArgs

MouseEventArgs

......

Page 5: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Handles ključna riječključna riječ

Handles

deklarira da procedura rukuje odreñenim deklarira da procedura rukuje odreñenim dogañajemdogañajem

omogućuje navoñenje rukovatelja dogañaja za omogućuje navoñenje rukovatelja dogañaja za vrijeme stvaranja programavrijeme stvaranja programa

5

Page 6: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Windows formaWindows forma

Forma je osnovni element grafičkog korisničkog Forma je osnovni element grafičkog korisničkog sučelja.sučelja.

predstavlja informacije korisnikupredstavlja informacije korisniku

uzima informacije od korisnikauzima informacije od korisnika

Forma izlaže:Forma izlaže:

6

Forma izlaže:Forma izlaže:svojstvasvojstva

definiraju pojavljivanje formadefiniraju pojavljivanje forma

postupkepostupkedefiniraju ponašanje formedefiniraju ponašanje forme

dogañajedogañajedefiniraju interakciju sa korisnikomdefiniraju interakciju sa korisnikom

Page 7: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Hijerarhija klasa Windows formi ?Hijerarhija klasa Windows formi ?System.Windows.Forms

Control

bazna klasa za sve kontrolebazna klasa za sve kontrole

osnovna funkcionalnost za kontrolu, poput veličine, osnovna funkcionalnost za kontrolu, poput veličine, vidljivosti i tabulatornog redavidljivosti i tabulatornog reda

ScrollableControl

nasljeñuje direktno iz nasljeñuje direktno iz Control klaseklase

osigurava mogućnost “skroliranja” za kontrole koje osigurava mogućnost “skroliranja” za kontrole koje zahtijevaju trake za pomicanje (scroll bars)zahtijevaju trake za pomicanje (scroll bars)

Control

ScrollableControl

ContainerControl

7

zahtijevaju trake za pomicanje (scroll bars)zahtijevaju trake za pomicanje (scroll bars)

ContainerControl

nasljeñuje direktno iz nasljeñuje direktno iz ScrollableControl

dodaje upravljanje fokusom i tabulatornim redom za dodaje upravljanje fokusom i tabulatornim redom za kontrole koje mogu spremiti druge kontrolekontrole koje mogu spremiti druge kontrole

Forms

nasljeñuje iz nasljeñuje iz ContainerControl

predstavlja prozor prikazan u programupredstavlja prozor prikazan u programu

UserControl

nasljeñuje iz nasljeñuje iz ContainerControl

prazna kontrola koja se može koristiti za stvaranje prazna kontrola koja se može koristiti za stvaranje vlastitih kontrolavlastitih kontrola

Form

UserControl

Page 8: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Korištenje svojstava formeKorištenje svojstava formeName

ime forme u projektu

AcceptButton i CancelButtonpridružuje po jednu kontrolu dugmeta tipkama ENTER i ESC

StartPositionpozicija forme na ekranu

Texttekst prikazan u naslovu formu

DialogResultodreñivanje odabranog dugmeta dijaloškog okvira

8

odreñivanje odabranog dugmeta dijaloškog okvira

Fontureñivanje pisma

Opacityprozirnost forme

MaximumSize i MinimumSizemaksimalna i minimalna veličina forme

tip SizeHeightWidth

TopMostforma ostaje ispred svih drugih prozora i kada nema fokusprimjer, Windows Task Manager

Page 9: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Korištenje postupaka formeKorištenje postupaka forme

CenterToScreen i CenterToParentcentriranje forme na ekranu ili na roditeljskoj formi

Closezatvaranje forme i oslobañanje resursa

Loadučitavanje (ali ne i prikazivanje) forme

9

učitavanje (ali ne i prikazivanje) forme

Show i ShowDialogprikaz forme na ekranu

ShowDialog prikazuje formu kao dijaloški okvir

Focusfokusiranje forme

Hideuklanja formu sa ekrana, ne i iz memorije

Page 10: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Korištenje dogañaja formeKorištenje dogañaja forme

Activated i DeactivateActivated se podiže kada je forma aktivirana kroz programski kod ili akcijom korisnika.

Deactivate se podiže kada forma gubi fokus

Closingpodiže se kada započne zatvaranje forme i omogućuje odustajanje od zatvaranja

10

od zatvaranja

Closednastaje nakon dogañaja Closing

može se upotrijebiti za snimanje informacija sa forme

MenuStart i MenuCompletepodižu se kada izbornik prima i gubi fokus

SizeChangedpodiže se kada se mjenjaju dimenzije forme

Page 11: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Primjer 1: dogañaji formePrimjer 1: dogañaji formeKorištenje dogañaja forme Korištenje dogañaja forme Activated, , Closed, , Deactivate, , SizeChanged i ispisivanje odgovarajuće poruke.i ispisivanje odgovarajuće poruke.

Private Sub Form1_Activated(ByVal sender As Object, _ByVal e As System.EventArgs) Handles MyBase.Activated

Console.WriteLine("Forma je aktivna")End Sub

Private Sub Form1_Deactivate(ByVal sender As Object, _ByVal e As System.EventArgs) Handles MyBase.Deactivate

11

End Sub

ByVal e As System.EventArgs) Handles MyBase.DeactivateConsole.WriteLine("Forma nije aktivna")

End Sub

Private Sub Form1_Closed(ByVal sender As Object, _ByVal e As System.EventArgs) Handles MyBase.Closed

Console.WriteLine("Forma je zatvorena")End Sub

Private Sub Form1_SizeChanged(ByVal sender As Object, _ByVal e As System.EventArgs) Handles MyBase.SizeChanged

Console.WriteLine("Promjena dimenzija forme")End Sub

Page 12: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Životni ciklus formeŽivotni ciklus forme

Životni ciklus forme se općenito sastoji u okidanju postupaka i dogañaja sljedećim slijedom:

1. Show()

2. Load

3. GotFocus

4. Activated

12

4. Activated

5. Closing

6. Closed

7. Deactivate

8. LostFocus

9. Dispose()

Dogañaji Enter i Leave su "ugušeni" za formu!ekvivalentni dogañaji su Activated i Deactivate

Page 13: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Korištenje standardnih dijaloških okviraKorištenje standardnih dijaloških okviraModalne i nemodalne formeModalne i nemodalne forme

MsgBox

MsgBoxStyle ii

If MsgBox("Odustajanje?", _MsgBoxStyle.OKCancel + MsgBoxStyle.Question, "Pitanje") _= MsgBoxResult.Cancel Then

'...End If

13

MsgBoxStyle iiMsgBoxResult –– nabrajanjanabrajanja

MessageBox klasaklasa

DialogResult –– svojstvo formesvojstvo forme

MessageBoxIcon -- nabrajanjenabrajanje

If MessageBox.Show("Odustajanje?", "Pitanje", _MessageBoxButtons.OKCancel, MessageBoxIcon.Question) _= DialogResult.Cancel Then

'...End If

Page 14: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Dodavanje i ureñivanje kontrola na formuDodavanje i ureñivanje kontrola na formuDodavanje kontrolaDodavanje kontrola

dva načina dodavanja kontrola na formudva načina dodavanja kontrola na formu

dodavanje izbornika na formudodavanje izbornika na formu

Ureñivanje kontrolaUreñivanje kontrolaizbornik izbornik FormatFormat

sadži opcije za organiziranje kontrolasadži opcije za organiziranje kontrolaporavnanje, iste dimenzije, centriranje, zaključavanje, poredak ...poravnanje, iste dimenzije, centriranje, zaključavanje, poredak ...

14

poravnanje, iste dimenzije, centriranje, zaključavanje, poredak ...poravnanje, iste dimenzije, centriranje, zaključavanje, poredak ...

postavljanje tabulatornog reda kontrolapostavljanje tabulatornog reda kontrola

svojstva svojstva TabIndex i i TabStop

View | Tab OrderView | Tab Order

sidrenje kontrolasidrenje kontrolaosigurava da rubovi kontrole budu jednako udaljeni u odnosu na roditeljski osigurava da rubovi kontrole budu jednako udaljeni u odnosu na roditeljski spremnikspremnik

svojstvo svojstvo AnchorTop, , Left, , Bottom i i Right

dokovanje kontroladokovanje kontrolaomogućuje “ljepljenje” rubova kontrole za rubove roditeljske kontroleomogućuje “ljepljenje” rubova kontrole za rubove roditeljske kontrole

Page 15: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Korištenje kontrola Windows formiKorištenje kontrola Windows formi

Samo informacijskeSamo informacijskeLabelLabel, , LinkLabelLinkLabel, , StatusBarStatusBar

Obrada tekstaObrada tekstaTextBoxTextBox, , RichTextBoxRichTextBox

NaredbeneNaredbeneButtonButton

Odabir iz listeOdabir iz listeComboBoxComboBox, , DomainUpDownDomainUpDown, , NumericUpDownNumericUpDown, , TreeViewTreeView

15

ComboBoxComboBox, , DomainUpDownDomainUpDown, , NumericUpDownNumericUpDown, , TreeViewTreeView

OpcijskeOpcijskeCheckBoxCheckBox, , RadioButtonRadioButton

Postavljanje datuma i vremenaPostavljanje datuma i vremenaDateTimePickerDateTimePicker

GrupirajućeGrupirajućePanelPanel

GroupBoxGroupBox

TabTab

Prikaz grafikePrikaz grafikePictureBoxPictureBox

Page 16: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Hijerarhija klasa kontrolaHijerarhija klasa kontrola

ScrollableControl ContainerControl Form

UserControl

DataGrid

ListControl ListBox CheckedListBox

ComboBox

16

ControlComboBox

PictureBox

ButtonBase Button

CheckBox

TextBoxBase

Label

TextBox

Page 17: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Korištenje svojstava i postupaka kontrolaKorištenje svojstava i postupaka kontrola

Okvir za tekst (Okvir za tekst (TextBox))

Natpis (Natpis (Label))opisniopisni

izlazniizlazni

Dugme (Dugme (Button))klik na dugmeklik na dugme

AcceptButton i i CancelButton svojstva formesvojstva forme

17

AcceptButton i i CancelButton svojstva formesvojstva forme

Okvir za potvrdu (Okvir za potvrdu (CheckBox))

Radio dugme (Radio dugme (RadioButton))stvaranje grupa kontrola (stvaranje grupa kontrola (GroupBox kontrola)kontrola)

Okvir s popisomOkvir s popisomrad sa stavkamarad sa stavkama

rad sa odabranim stavkamarad sa odabranim stavkama

Kombinirani okvirKombinirani okvir

Page 18: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Dodavanje kontrola za vrijeme izvoñenjaDodavanje kontrola za vrijeme izvoñenja

Zbirke kontrolaZbirke kontrolapredstavljaju zbirku objekata izvedenih iz predstavljaju zbirku objekata izvedenih iz Control

Svojstvo Svojstvo Controlskoristi se koristi se Add, , Remove i i RemoveAt za dodavanje i uklanjanje za dodavanje i uklanjanje kontrola iz zbirkekontrola iz zbirke

ostali postupci:ostali postupci: Clear, , Contains

Count vraća broj kontrola unutar spremnikavraća broj kontrola unutar spremnika

18

Count vraća broj kontrola unutar spremnikavraća broj kontrola unutar spremnika

Private Sub Button1_Click_1(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click

Dim textBox1 As New TextBox()textBox1.Text = ""textBox1.Left = 20textBox1.Top = 100Me.Controls.Add(textBox1)

End Sub

Page 19: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Primjer 2: Kontrola spremnikaPrimjer 2: Kontrola spremnika

Korištenjem zbirke kontrola forme izbrišite sav Korištenjem zbirke kontrola forme izbrišite sav tekst unesen u kontrole okvira za tekst. tekst unesen u kontrole okvira za tekst.

Private Sub Button1_Click_1(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click

Dim item As Control

19

Dim item As ControlFor Each item In Me.Controls

If TypeOf item Is TextBox Thenitem.Text = ""

End IfNext

End Sub

Page 20: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Primjer 3: Okvir s popisomPrimjer 3: Okvir s popisomPotrebno je sve stavke koje su istovremeno odabrane u Potrebno je sve stavke koje su istovremeno odabrane u jednom okviru s popisom ispisati korištenjem jednom okviru s popisom ispisati korištenjem MessageBox dijaloškog okvira.dijaloškog okvira.

Listu napuniti s nekoliko stavki kada je fokus na kontroli.Listu napuniti s nekoliko stavki kada je fokus na kontroli.

Odabrane stavke ispisati kada fokus gubi kontroluOdabrane stavke ispisati kada fokus gubi kontrolu

Private Sub ListBox1_Leave(...) Handles ListBox1.LeaveDim item As Object

20

Dim item As ObjectFor Each item In ListBox1.SelectedItems

MessageBox.Show(item)Next

End SubPrivate Sub ListBox1_Enter(...) Handles ListBox1.Enter

With ListBox1.SelectionMode = SelectionMode.MultiSimple.Items.Add("Split").Items.Add("Zagreb").Items.Add("Križevci")

.Items.Add("Vukovar")End With

End Sub

Page 21: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Primjer 4: Kombinirani okvirPrimjer 4: Kombinirani okvir

Omogućiti dodavanje stavke unesene u dio za unos u listu Omogućiti dodavanje stavke unesene u dio za unos u listu kombiniranog okvira.kombiniranog okvira.

Sprijećiti ponavljanje stavki u listiSprijećiti ponavljanje stavki u listi

Private Sub ComboBox1_Leave(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles ComboBox1.Leave

If ComboBox1.Text.Length > 0 Then

21

If ComboBox1.Items.Contains(ComboBox1.Text) ThenExit Sub

ElseComboBox1.Items.Add(ComboBox1.Text)

End IfEnd If

End Sub

Page 22: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Rukovanje dogañajima mišaRukovanje dogañajima mišaDogañaji miša nastaju klikom ili pomakom miša.Dogañaji miša nastaju klikom ili pomakom miša.

Dogañaji miša:Dogañaji miša:MouseEnter

nastaje kada pokazivač miša ulazi na područje kontrolenastaje kada pokazivač miša ulazi na područje kontrole

MouseLeavenastaje kada pokazivač miša napušta područje kontrolenastaje kada pokazivač miša napušta područje kontrole

MouseDownnastaje kada se pritisne tipka miša dok je pokazivač iznad područja nastaje kada se pritisne tipka miša dok je pokazivač iznad područja

22

nastaje kada se pritisne tipka miša dok je pokazivač iznad područja nastaje kada se pritisne tipka miša dok je pokazivač iznad područja kontrolekontrole

MouseHovernastaje kada se pokazivač miša nalazi iznad područja kontrolenastaje kada se pokazivač miša nalazi iznad područja kontrole

MouseMovenastaje kada se pomiče pokazivač miša iznad kontrolenastaje kada se pomiče pokazivač miša iznad kontrole

MouseUpnastaje kada se otpusti tipka miša dok je pokazivač iznad područja nastaje kada se otpusti tipka miša dok je pokazivač iznad područja kontrolekontrole

MouseWheelnastaje kada se pomiće kotačić miša dok je pokazivač iznad područja nastaje kada se pomiće kotačić miša dok je pokazivač iznad područja kontrolekontrole

Page 23: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Redoslijed nastajanja dogañaja mišaRedoslijed nastajanja dogañaja miša

Dogañaji miša nastaju sljedećim redom:Dogañaji miša nastaju sljedećim redom:

1.1. MouseEnter

2.2. MouseMove

3.3. MouseHover / / MouseDown / / MouseWheel

MouseUp

23

4.4. MouseUp

5.5. MouseLeave

Page 24: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

MouseEventArgs klasaklasa

Sadrži informacije o dogañaju miša:Sadrži informacije o dogañaju miša:Button –– odreñuje koja tipka miša je pritisnutaodreñuje koja tipka miša je pritisnuta

MouseButtons nabrajanjenabrajanje

Left, , Middle, , None, , Right ……

Clicks –– pokazuje koliko puta je tipka pritisnutapokazuje koliko puta je tipka pritisnuta

X,, Y –– koordinate dogañajakoordinate dogañaja

24

X,, Y –– koordinate dogañajakoordinate dogañajarelativne prema kontrolirelativne prema kontroli

X –– x koordinatax koordinata

Y –– y koordinatay koordinata

Delta –– zakret kotačića mišazakret kotačića miša

Dogañaji: Dogañaji: MouseUp, , MouseDown, , MouseMove i i MouseHover

Page 25: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Primjer 2: Dogañaji mišaPrimjer 2: Dogañaji mišaPohranjivanje koordinate dogañaja klika mišem na formu Pohranjivanje koordinate dogañaja klika mišem na formu u jednodimenzionalni niz. U zaglavlju forme se ispisuje u jednodimenzionalni niz. U zaglavlju forme se ispisuje udaljenost točke klika od ishodišta.udaljenost točke klika od ishodišta.

Private Structure Point2DPublic X, Y As IntegerPublic Function Distance() As Single

Return Math.Sqrt(X ^ 2 + Y ^ 2)End Function

25

End FunctionEnd Structure

Private points As Point2D() = New Point2D(9) {}Private Sub Form1_MouseDown(ByVal sender As Object, _

ByVal e As System.Windows.Forms.MouseEventArgs) _Handles MyBase.MouseDown

Static counter As Integerpoints(counter).X = e.Xpoints(counter).Y = e.YMe.Text = points(counter).Distancecounter += 1

End Sub

Page 26: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Zadatak 1: Dogañaji mišaZadatak 1: Dogañaji miša

Pohraniti linije unesene preko grafičkog sučelja u Pohraniti linije unesene preko grafičkog sučelja u jednodimenzionalni niz.jednodimenzionalni niz.

Početna točka linije je odreñena pritiskom jedne Početna točka linije je odreñena pritiskom jedne tipke miša na formu a konačna točka linije tipke miša na formu a konačna točka linije otpuštanjem iste tipke miša.otpuštanjem iste tipke miša.

Pritiskom druge tipke miša neka se ispiše dužina Pritiskom druge tipke miša neka se ispiše dužina linije u naslovu forme.linije u naslovu forme.

26

Pritiskom druge tipke miša neka se ispiše dužina Pritiskom druge tipke miša neka se ispiše dužina linije u naslovu forme.linije u naslovu forme.UPUTE:UPUTE:UPUTE:UPUTE:UPUTE:UPUTE:UPUTE:UPUTE:

kreirati strukturu kreirati strukturu Point2DPoint2D

kreirati klasu kreirati klasu LineLine za predstavljanje linijeza predstavljanje linijesvojstva svojstva StartPointStartPoint, , EndPointEndPoint –– tip tip Point2DPoint2D

postupak postupak LengthLength

upotrijebiti prikladne rukovatelje dogañajima miša radi upotrijebiti prikladne rukovatelje dogañajima miša radi dohvata koordinata klika i odreñivanja pritisnute tipke.dohvata koordinata klika i odreñivanja pritisnute tipke.

Page 27: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Dogañaji tipkovniceDogañaji tipkovnice

Dogañaj tipkovnice: pritisak i otpuštanje tipkeDogañaj tipkovnice: pritisak i otpuštanje tipke

Dogañaji tipkovnice:Dogañaji tipkovnice:KeyPress

nastaje kada je pritisnuta tipka koja predstavlja ASCII znaknastaje kada je pritisnuta tipka koja predstavlja ASCII znak

ASCII je znakovni skup od 128 alfanumeričkih simbolaASCII je znakovni skup od 128 alfanumeričkih simbola

ASCII ne podržava funkcijske tipke (F1, F2 ...)ASCII ne podržava funkcijske tipke (F1, F2 ...)

27

ASCII ne podržava funkcijske tipke (F1, F2 ...)ASCII ne podržava funkcijske tipke (F1, F2 ...)

ASCII ne podržava modifikatorske tipke (Control, Enter, Alt)ASCII ne podržava modifikatorske tipke (Control, Enter, Alt)

ponavlja se dok je tipka pritisnutaponavlja se dok je tipka pritisnuta

KeyDownnastaje kada je tipka pritisnutanastaje kada je tipka pritisnuta

KeyUpnastaje kada je tipka otpuštenanastaje kada je tipka otpuštena

Page 28: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

KeyPress dogañajdogañaj

Pojavljuje se kada je tipka pritisnuta dok kontrola Pojavljuje se kada je tipka pritisnuta dok kontrola ima fokus.ima fokus.

e -- argument tipa argument tipa KeyPressEventArgsSvojstva:Svojstva:

Handled

28

odreñuje da li je odreñuje da li je KeyPressKeyPress dogañaj rukovandogañaj rukovan

postavljanjem na postavljanjem na TrueTrue poništava se daljnja obrada dogañajaponištava se daljnja obrada dogañaja

KeyChar

vraća ASCII znak pritisnute tipkevraća ASCII znak pritisnute tipke

Page 29: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Primjer 3: Primjer 3: KeyPress dogañajdogañaj

Pretvoriti malo slova uneseno u kontrolu okvira za Pretvoriti malo slova uneseno u kontrolu okvira za tekst u veliko prije nego što bude ispisano u tekst u veliko prije nego što bude ispisano u kontroli. kontroli.

Private Sub TextBox1_KeyPress(ByVal sender As Object, _

ByVal e As System.Windows.Forms.KeyPressEventArgs) _Handles TextBox1.KeyPress

29

Handles TextBox1.KeyPressDim letter As Char = e.KeyCharSelect Case letter

Case "a" To "z"letter = Char.ToUpper(letter)e.Handled = TrueTextBox1.AppendText(letter)

End SelectEnd Sub

Page 30: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

KeyUp i i KeyDown dogañajidogañajiPojavljuju se kada je tipka pritisnuta (Pojavljuju se kada je tipka pritisnuta (KeyUp) odnosno otpuštena () odnosno otpuštena (KeyDown).).

e -- argument tipa argument tipa KeyEventArgsSvojstva:Svojstva:

Alt -- ukazuje da li je pritisnuta tipka Altukazuje da li je pritisnuta tipka Alt

Control -- ukazuje da li je pritisnuta tipka Controlukazuje da li je pritisnuta tipka Control

Shift -- ukazuje da li je pritisnuta tipka Shiftukazuje da li je pritisnuta tipka Shift

KeyCode

vraća kod pritisnute tipke kao vraća kod pritisnute tipke kao KeysKeys nabrajanjenabrajanje

ne uključuje informacije o modifikatorskim tipkama ne uključuje informacije o modifikatorskim tipkama

koristi se za testiranje odreñene tipkekoristi se za testiranje odreñene tipke

30

koristi se za testiranje odreñene tipkekoristi se za testiranje odreñene tipke

KeyData

vraća kod pritisnute tipke kao vraća kod pritisnute tipke kao KeysKeys nabrajanjenabrajanje

uključuje informacije o modifikatorskim tipkamauključuje informacije o modifikatorskim tipkama

sadrži sve informacije o pritisnutoj tipkisadrži sve informacije o pritisnutoj tipki

KeyValue

vraća kod tipke kao vraća kod tipke kao IntegerInteger

numeričko predstavljanje pritisnute tipkenumeričko predstavljanje pritisnute tipke

Modifiers

vraća vraća KeysKeys nabrajanje za bilo koju pritisnutu modifikatorsku tipku (nabrajanje za bilo koju pritisnutu modifikatorsku tipku (AltAlt, , ControlControl i i ShiftShift))

koristi se samo za informaciju o modifikatorskim tipkamakoristi se samo za informaciju o modifikatorskim tipkama

Handled –– odreñuje da li je dogañaj rukovanodreñuje da li je dogañaj rukovan

Page 31: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Private Sub Form1_KeyPress(ByVal sender As Object, _

ByVal e As System.Windows.Forms.KeyPressEventArgs) _Handles MyBase.KeyPress

Character.Text = "Pritisnuta tipka:" & e.KeyCharEnd SubPrivate Sub Form1_KeyDown(ByVal sender As Object,

ByVal e As System.Windows.Forms.KeyEventArgs) _Handles MyBase.KeyDown

Information.Text = ""'ako je pritisnuta tipka ALT

Primjer 4: Primjer 4: KeyUp i i KeyDown dogañajidogañaji

31

'ako je pritisnuta tipka ALTIf e.Alt Then

Information.Text &= "Alt: Da" & vbCrLfElse

Information.Text &= "Alt: Ne" & vbCrLfEnd If'...Information.Text &= "KeyCode: " & e.KeyCode.ToString & _

vbCrLf & "KeyData: " & e.KeyData.ToString & _vbCrLf & "KeyValue: " & e.KeyValue

End Sub

Page 32: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Zadatak 2: Dogañaji tipkovniceZadatak 2: Dogañaji tipkovnice

Potrebno je dodati funkcionalnost kontroli za tekst Potrebno je dodati funkcionalnost kontroli za tekst tako da dozvoljava unos samo numeričkih tako da dozvoljava unos samo numeričkih vrijednosti. Omogućiti povećavanje/smanjivanje vrijednosti. Omogućiti povećavanje/smanjivanje unesene vrijednosti s korakom 1 pritiskom na unesene vrijednosti s korakom 1 pritiskom na tipke Up i Down.tipke Up i Down.

32

Page 33: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Provjera korisničkog unosaProvjera korisničkog unosa

CausesValidation svojstvosvojstvo

Validate dogañajdogañaj

ErrorProvider kontrolakontrola

MaskEdit kontrolakontrola

Nastajanje dogañaja kontroleNastajanje dogañaja kontrole

33

Nastajanje dogañaja kontroleNastajanje dogañaja kontrole1.1. Enter

2.2. GotFocus

3.3. Leave

4.4. Validating

5.5. Validated

6.6. LostFocus

Page 34: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Validating dogañajdogañaj

Koristi se za provjeru korisničkog unosa.Koristi se za provjeru korisničkog unosa.

Ako se svojstvo Ako se svojstvo Cancel od od CancelEventArgspostavi na postavi na True fokus neće napustiti kontrolu.fokus neće napustiti kontrolu.

Ako se svojstvo Ako se svojstvo Cancel od od CancelEventArgspostavi na postavi na False podižu se podižu se Validated i i

34

postavi na postavi na False podižu se podižu se Validated i i LostFocus dogañaji. dogañaji.

CausesValidation svojstvo odreñuje da li svojstvo odreñuje da li prethodna kontrola sudjeluje u provjeri ispravnosti.prethodna kontrola sudjeluje u provjeri ispravnosti.

ako je ako je False ne podiže se dogañaj provjerene podiže se dogañaj provjere

Page 35: Uvod u programiranje Programiranje 1 (550) · PDF fileUvod u programiranje Programiranje 1 (550) Poglavlje 8 Windows forme 1 ddrr. sscc. Josip Musić. Josip Musić jmusicjmusic@@fesb.hr

Private Sub NumericBox_KeyPress(ByVal sender As System.Object, _ByVal e As System.Windows.Forms.KeyPressEventArgs) _

Handles MaxBox.KeyPress, MinBox.KeyPresse.Handled = TrueIf e.KeyChar.IsDigit(e.KeyChar) Then

sender.AppendText(e.KeyChar)End If

End Sub

Private Sub NumericBox_KeyDown(ByVal sender As System.Object, _ByVal e As System.Windows.Forms.KeyEventArgs) _

Primjer: Primjer: Validating dogañajdogañaj

35

ByVal e As System.Windows.Forms.KeyEventArgs) _Handles MaxBox.KeyDown, MinBox.KeyDown

If e.KeyCode = Keys.Up Then sender.Text += 1If e.KeyCode = Keys.Down Then sender.Text -= 1

End Sub

Private Sub MaxBox_Validating(ByVal sender As System.Object, _ByVal e As System.ComponentModel.CancelEventArgs) _Handles MaxBox.Validating

If CInt(MinBox.Text) >= CInt(MaxBox.Text) Thene.Cancel = True : MessageBox.Show("Mora biti MAKS>MIN!")

End IfEnd Sub