uvod u programiranje programiranje 1 (550) · pdf fileuvod u programiranje programiranje 1...
TRANSCRIPT
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
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
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
Š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
......
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
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
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
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
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
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
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
Ž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
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
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
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
Hijerarhija klasa kontrolaHijerarhija klasa kontrola
ScrollableControl ContainerControl Form
UserControl
DataGrid
ListControl ListBox CheckedListBox
ComboBox
16
ControlComboBox
PictureBox
ButtonBase Button
CheckBox
TextBoxBase
Label
TextBox
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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