Etusivu Aloitus Kontrollit Metodit Muuttujat Ohjausrakenteet Silmukat Matematiikka Debuggaus Virheenkäsittely Vuorovaikutus Valikot Tiedostonkäsittely Ikkunat Leikepöytä Drag and Drop Tiedostopäätteet Linkkejä Harjoitukset
Kontrollit ovat Visual Basic -ohjelman käyttöliittymä, kuten alla esitettävä ohjelma, jossa on lomake ja siinä kaksi kontrollia, painike ja tekstikenttä.
Kuvassa on esitetty pieni ohjelma, jossa on kolme oliota (lomake ja siinä kaksi kontrollia).
Käyttäjä aiheuttaa kontrolleille tapahtumia (esim. napsauttaa painiketta hiirellä) jonka seurauksena suoritetaan em. tapahtumaan liittyvää ohjelmakoodia. Tämän vuoksi Visual Basic -ohjelmointia voidaan kutsua tapahtumaohjatuksi ohjelmoinniksi.
Kontrolli | Sopiva lyhenne | esimerkki kontrollin nimestä |
---|---|---|
Form | frm | frmAloitus |
CheckBox | chk | chkNaytaKuvat |
ComboBox | cmo / combo | cboTilaukset / comboTilaukset |
BommandButton | cmd | cmdLaskeYhteen |
Frame | fra / fram | fraTiedot / frameTiedot |
(Horizontal/Vertical)scroll bar | (h/v)sb / scroll | (h/v)sbKuva / scrollKuva |
Image | img | imgKuva |
Label | lbl | lblOtsikko |
Menu | mnu | mnuTiedosto |
OptionButton | opt | optIka |
PictureBox | pic / picture | picKuva / pictureKuva |
TextBox | txt | txtEtuNimi |
cmdPainike.Caption = "Painikkeen uusi otsikko"Kontrollin ominaisuuksia voi vaihtaa Properties -ikkunan kautta. Alla esitetään tärkeimmät VB:n kontrollit ja niihin liittyvät tärkeimmät ominaisuudet.
HUOM! Voit halutessasi muokata useamman kontrollin ominaisuuksia kerralla valitsemalla halutut kontrollit ja muuttamalla haluamasi asetukset.
Ominaisuus | Mihin ominaisuus vaikuttaa |
---|---|
Appearance | Määrittää näytetäänkö kontrolli kolmiulotteisena vai "tasaisena lättynä". |
AutoRedraw | Tämä ominaisuus kertoo piirretäänkö komponentti automaattisesti uudestaan vai ei. |
BackColor | Määrittää kontrollin taustavärin. |
Caption | Kontrollin näkyvä "selite" tai nimi. Tekstikentällä vastaava ominaisuus on Text, lomakkeella Title. |
Enabled | Määrittää reagoiko kontrolli käyttäjän toimenpiteisiin (esim. hiiren napautukseen). |
Font | Määrittää komponentissa olevan tekstin esittämiseen käytettävän fontin. |
ForeColor | Määrittää komponentin ns. etuvärin, käytännössä fontin väri. |
Height / Width | Määrittää komponentin korkeuden/leveyden. |
KeyPreview | Määrittää ohjataanko näppäimistön painallustapahtumat ensin lomakkeelle vai kontrollille |
Left / Top | Määrittää komponentin vasemman yläkulman sijainnin (esim. lomakkeen) vasemmasta reunasta/yläreunasta. |
MouseIcon / MousePointer | Määrittää hiiren ikonin / ikonin tyypin hiiren kursorin ollessa kontrollin päällä. |
Name | Määrittää kontrollin nimen. Tätä nimeä käytetään ohjelmakoodissa joten jokainen kontrolli kannattaa nimetä kunnolla! |
Picture | Määrittää kontrollissa näkyvän kuvan. |
TabIndex | Jos kontrollin TabStop -ominaisuus on päällä, tämä ominaisuus määrittää järjestyksen jonka mukaan kohdistus siirtyy (TAB -näppäintä painettaessa). Indeksi 0 on ensimmäinen, 1 toinen, jne. |
TabStop | Määrittää voiko kontrolli saada kohdistuksen TAB -näppäintä painettaessa. |
Tag | Jokaisella kontrollilla on ns. tagi johon voit tallentaa kontrollikohtaista tietoa. |
ToolTipText | Vinkkiteksti, joka näytetään hiiren kursorin ollessa kontrollin päällä. Kokeile viemällä hiiren kursori tämän päälle. |
Visible | Määrittää näytetäänkö kontrolli ohjelman suorituksen aikana vai ei |
Kontrollin asetusten muuttaminen Properties -ikkunaa käyttäen.
Huomaa kuitenkin, että ominaisuudet vaihtelevat hiukan riippuen siitä, minkä kontrollin asetuksia muutat, kaikilla kontrolleilla EI ole samoja ominaisuuksia.
Kontrollin ominaisuuksia voi muuttaa myös ohjelman suorituksen aikana, ohjelmakoodissa. Seuraavassa esimerkissä muutamme TextBox -kontrollin (nimeltään txtNimi) ominaisuuksia ohjelman suorituksen aikana, tarkemmin sanottuna lomakkeen lataustapahtumassa (Form_Load). Luo siis uusi Standard EXE -projekti ja lisää lomakkeelle yksi TextBox -kontrolli ja muuta sen nimeksi (name) txtNimi. Kopioi alla oleva ohjelmakoodi ohjelmaasi:
Private Sub Form_Load() txtNimi.Text = "Teppo Testaaja" txtNimi.BackColor = vbRed txtNimi.BorderStyle = vbBSNone txtNimi.ToolTipText = "Tämä on ns. Tooltip -teksti joka näkyy kun laitat hiiren kursorin kontrollin päälle!" End SubTuloksena on ohjelma, jossa on TextBox -tyyppinen kontrolli. Ohjelmaa ajettaessa kontrollin tekstiksi tulee "Teppo Testaaja", kontrollin taustaväriksi punainen, kontrollin reunukset poistetaan ja kontrollille lisätään ns. tooltip -teksti.
Private Sub cmdPainike_Click() MsgBox "Napsautit painiketta!" End SubAloitus -sivulla opettelimme lisäämään erilaisia tapahtumia kontrollille. Huomaa, että kontrolleilla voi olla hyvinkin erilaisia tapahtumia eikä kaikilla kontrolleilla ole samoja tapahtumia. Älä kirjoita ohjelmakoodia mihin sattuu tapahtumaan, tämä voi aiheuttaa ongelmia. Yksi hyvä esimerkki "huonosti" sijoitetusta tapahtumasta on alla:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) MsgBox "Liikutit hiirtä!" End SubOhjelma näyttää viestilaatikon aina kun liikautat hiirtä lomakkeen päällä!
Huom! Muista, että voit kutsua kontrollin tapahtumaa itsekkin eli sinun ei tarvitse odottaa, että käyttäjä painaa esim. painiketta vaan voit kirjoittaa ohjelmakoodin: cmdPainike_Click() joka kutsuu cmdPainike -nimisen painikkeen Click -metodia.
Tapahtuma | Milloin tapahtuma suoritetaan |
---|---|
Click / DblClick | Tapahtuma syntyy kun käyttäjä napsauttaa/tuplanapsauttaa kontrollia hiiren painikkeella. |
DragDrop | Tapahtuma syntyy kun jokin olio (esim. Resurssienhallinnasta valittu tiedosto) raahataan ja pudotetaan kontrollin päälle. |
DragOver | Tapahtuma syntyy kun jokin olio raahataan kontrollin yli. |
GotFocus / LostFocus | Tapahtuma syntyy kun kontrolli valitaan / kontrollin kohdistus häviää. |
KeyDown / KeyUp | Tapahtuma syntyy kun kontrollin ollessa valittuna painetaan näppäintä / vapautetaan näppäin. |
KeyPress | Tapahtuma jossa voidaan käsitellä näppäimenpainallukset. |
MouseDown / MouseUp | Tapahtuma syntyy kun hiiren painike painetaan alas / vapautetaan |
MouseMove | Tapahtuma syntyy kun hiiren kursoria liikutetaan kontrollin päällä. |
Paint | Tapahtuma syntyy kun kontrolli piirretään uudestaan. |
Kontrolleilla on siis ominaisuuksia ja tapahtumia. Tämän lisäksi kontrollilla voi olla myös metodeja. Esim. lomakkeella on Show -metodi, painikkeella Move -metodi, jne. Voit ajatella metodin olevan toiminto, jonka kontrolli toteuttaa. Niinpä kutsuttaessa lomakkeen Show -metodia pyydämme lomaketta "esille". Pyydettäessä painikkeelta Move -metodia pyydämme painiketta liikkumaan johonkin tiettyyn paikkaan. Kontrollin metodin formaali syntaksi on seuraavanlainen:
[lomake.][kontrolli.]metodi [metodin argumentit]
Hakasulkujen sisällä olevat tekstit ovat vapaaehtoisia. Otetaan esimerkki lomakkeella Form1 -olevan Command1 -painikkeen Move -metodin kutsusta:
Form1.Command1.Move 500, 500Edellinen koodirivi siirtää painikkeen (Command1) kohtaan 500, 500 lomakkeella Form1. Sama asia voitaisiin kirjoittaa myös seuraavasti:
Command1.Move 500, 500Tämä toimii, koska ohjelmakoodirivi on samalla lomakkeella missä siirrettävä painikekin on. Yhteenvetona voisikin todeta, että jos kutsut samalla lomakkeella olevan lomakkeen/kontrollin metodia, voit jättää lomakkeen nimen pois tai käyttää sen paikalla Me -sanaa (katso seuraava esimerkki). Jos kutsut jollakin toisella lomakkeella olevan lomakkeen/kontrollin metodia, tulee sinun kirjoittaa "koko rimpsu" kuten ensimmäisessä esimerkissämme teemme.
Me.Command1.Move 500, 500
Voit luoda kontrollitaulukon kopioimalla kontrollin (valitse kontrolli, paina CTRL-C tai valitse Edit -valikosta Copy -toiminto) ja liittämällä (CTRL-V tai Edit -valikosta Paste -toiminto) takaisin lomakkeelle. VB kysyy haluatko luoda kontrollitaulukon johon vastaat Yes. Tämän jälkeen voit kopioida kontrolleja haluamasi määrän näytölle. Jokainen kontrolli saa saman nimen mutta eri indeksinumeron. Ensimmäisen kontrollin indeksinumero on 0, toisen 1, kolmannen 2, jne.
Kuvassa on luotu kymmenestä Command -painikkeesta koostuva kontrollitaulukko.
Private Sub Command1_Click(Index As Integer) Command1(Index).Caption = "Painoit painiketta " & Index End Sub
Kuvassa esimerkkiohjelman tuloste.
Kontrollin ikoni | Kontrollin nimi | Kontrollin selite |
---|---|---|
Kuvakontrolli | Tällä kontrollilla voit esittää erityyppisiä (JPG, BMP, GIF) kuvatiedostoja sekä piirtää itse kontrolliin grafiikkakomennoilla. | |
Label | Otsikkokontrollilla voit esittää tekstiä jota käyttäjä ei voi muokata. | |
TextBox | Tekstikontrollilla voit esittää tekstiä, lisäksi käyttäjä voi muokata tekstiä. Tätä käyttäjän syötettä voit käyttää ohjelmakoodissasi. | |
Frame | Kehyskontrollilla voit "kerätä" samaan asiaan liittyvät kontrollit yhteen. | |
CommandButton | Painikekontrollilla voit vastaanottaa käyttäjän toimenpiteitä. Toimenpiteen seurauksena ohjelma voi tehdä jotain, esim. tulostaa tietoa, tallentaa tietoa yms. | |
CheckBox | Valintakontrollilla käyttäjä voi valita onko esim. jokin tietty toiminto päällä tai ei. Lisäksi kontrolli voi olla ns. välitilassa jolloin sen arvo ei ole valittu eikä ei valittu. Sinulla voi olla useampi kuin yksi valintakontrolli, eivätkä niiden valinnat vaikuta toisiinsa. | |
OptionButton | Tämä valintakontrolli on kuten edellinenkin mutta erona on se, että voit valita kontrollitaulukosta olevista kontrolleista vain yhden valituksi. | |
ComboBox | Valintalistalta voit valita yhden tiedon. Riippuen kontrollin tilasta riippuen käyttäjä voi muokata valintalistan tietoja. | |
ListBox | Tämä valintalista eroaa edellisestä sen verran, että (kontrollin asetuksista riippuen) käyttäjä voi valita yhden tai useamman listalla olevan tietueen. | |
HScrollBar / VScrollBar | Vierityspalkista voidaan valita haluttu arvo määritellyltä vaaka/pystysuuntaiselta asteikolta. | |
Timer | Ajastimella voit ajastaa jonkin tietyn toimenpiteen suoritettavaksi halutun ajan välein. Kontrolli ei näy suorituksen aikana. | |
DriveListBox | Tällä kontrollilla voit listata tietokoneessa olevat levyasemat (esim. C, D, E, jne.) | |
DirListBox | Hakemistokontrolli listaa valitussa polussa olevat hakemistot. | |
FileListBox | Tiedostokontrolli listaa valitussa hakemistossa olevat tiedostot ja tarvittaessa vain määrätyn päätteiset tiedostot. | |
Shape | Kuviokontrollilla voit piirtää yksinkertaisia kuvioita kuten neliöitä ja ympyröitä. Kuvioihin ei liity tapahtumia. | |
Line | Viivakontrollilla voit piirtää viivan. Viivakontrollilla ei ole tapahtumia. | |
Image | Tämä kuvakontrolli on hiukan kevyempi kuin PictureBox. |