Archív Inet.sk Pôvodný autor: Peter Hrdlica
28. 12. 2009 o 10:46 4131x

Visual Basic.NET – 3. diel

A tretí diel je tu! Opäť nové ovládacie prvky, opäť nové funkcie a opäť vhodne zvolené množstvo obrazovej dokumentácie!
Visual Basic.NET – 3. diel

Úvod

Vítam Vás pri ďalšom, tento krát treťom pokračovaní seriálu o programovaní vo VB.NET. Dnes si ukážeme ako vytvoriť dobre známe „vyskakovacie“ okná, ako s nimi narábať a priblížime si dva nové prvky – zaškrtávacie pole CheckBox a pole výberu RadioButton. Prajem príjemné chvíle pri čítaní.


Message Box – dajte vedieť užívateľovi dôležité informácie

Message Box (ďalej MsgBox) je špeciálne dialógové okno, ktoré ma v podstate dve funkcie.  Buď užívateľa na niečo upozorní zobrazením dát,  alebo mu dá možnosť urobiť nejaké rozhodnutie.

Keďže je vo VB.NET viac spôsobov ako toto dialógové okno zobraziť, ukážeme si teraz postupne tie najľahšie z nich.

Spôsob prvý

MsgBox(zobrazený text, výzor okna a tlačítka, nadpis)

Tento zápis obsahuje iba tieto tri parametre. V tomto prípade je prvý parameter nevyhnutný, keďže prázdne okno sa zobraziť nedá. Ak neuvediete zvyšné dva, tak sa dialógová správa zobrazí s prednastaveným nadpisom Vašej aplikácie (Assembly name) a tlačidlom „Ok“ bez obrázka.
 

MsgBox1
 

Tento krát si ukážeme ako priradíme iné tlačidlá a nadpis – pozorný a šikovný čitateľ to už určite zvládne aj sám podľa parametrického zápisu.

MsgBox("hello, world", MsgBoxStyle.OkCancel, "Môj prvý MSG box")

MsgBoxStyle.OkCancel – je, ako už názov udáva, štýl udávajúci výzor dialógového okna. Po napísaní čiarky za textom sa nám vyroluje kompletný zoznam s možnosťami na štylizovanie okna.

Tento zápis nám dá nasledujúci výsledok:
 

MsgBox2
 

Niečo tomu ale ešte chýba, však? Správne, je to obrázok. Obrázok pre MsgBox je rovnako ako tlačidlá deklarovaný cez MsgBoxStyle, takže aby sme mohli upraviť aj tlačidlá aj obrázok, je potrebné zápis urobiť podľa nasledujúceho postupu:

MsgBox("hello, world", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Môj druhý MSG box")

Rovnakým spôsobom možno nastaviť aj to, ktoré tlačidlo má byť prednastavené (v našom prípade je to tlačidlo OK) a to pomocou MsgBoxStyle.DefaultButton2 - pre druhé tlačidlo. Zápis druhého parametru je jednoduchší v druhom spôsobe, ktorý si predstavíme.
 

MsgBox3

 Jednotlivé tlačidlá (‚prednastavenosť‘) aj obrázky však môžu byť zastúpené aj číselnou hodnotou podľa nasledovných tabuliek:


MsgBoxStyle

Hodnota

Tlačidlá

OkOnly

0

Ok

OkCancel

1

Ok, Cancel (Zrušiť)

AbortRetryIgnore

2

Abort, Retry, Ignore (Prerušiť, Opakovať, Ignorovať)

YesNoCancel

3

Yes, No, Cancel (Áno, Nie, Zrušiť)

YesNo

4

Yes, No (Áno, Nie)

RetryCancel

5

Retry, Cancel (Opakovať, Zrušiť)


MsgBoxStyle

Hodnota

Prednastavené

DefaultButton1

0

Prvé tlačidlo

DefaultButton2

256

Druhé tlačidlo

DefaultButton3

512

Tretie tlačidlo

 

MsgBoxStyle

Hodnota

Obrázok

Critical

16

Critical

Question

32

Question

Exclamation

48

Exclamation

Information

64

Information


Jednotlivé hodnoty sa dajú navzájom kombinovať = sčítať. Takže ak by sme pre náš príklad s prednastaveným druhým tlačidlom chceli miesto deklarácie MsgBoxStyle použiť číselnú hodnotu, príkaz by vyzeral nasledovne:

MsgBox("hello, world", 321, "MsgBox s číselnými hodnotami")


Odpovede, potrebujem odpovede!

Už vieme ‚vypľuť‘ na obrazovku MsgBox, vieme urobiť aby vyzeral pekne, ale stále nevieme zistiť na aké tlačidlo užívateľ klikol keďže odozva z opačnej strany je to čo robí dialóg dialógom, tak si to si práve teraz ukážeme.

Prvý spôsob predpokladá, že program / užívateľ si nebude potrebovať pamätať na aké tlačidlo klikol. Tento spôsob je možné použiť napríklad pri pýtaní sa užívateľa na povolenie vypnutia aplikácie.

If MsgBox("Chcete ukončiť program?", 292, "Otázka") = MsgBoxResult.Yes Then

      End

End If


Rozbor:

292 = 4 (YesNo) + 256 (DefaultButton2) + 32 (Question)

MsgBoxResult je na rozdiel od MsgBoxStyle slúži na rozoznanie výsledku stlačeného tlačidla. Tieto hodnoty sa dajú taktiež zameniť číslami a to nasledovne:


Tlačidlo

Príkaz

Hodnota

Ok

MsgBoxResult.Ok

1

Zrušiť

MsgBoxResult.Cancel

2

Prerušiť

MsgBoxResult.Abort

3

Opakovať

MsgBoxResult.Retry

4

Ignorovať

MsgBoxResult.Ignore

5

Áno

MsgBoxResult.Yes

6

Nie

MsgBoxResult.No

7


Zápis by teda mohol vyzerať aj takto:

If MsgBox("Chcete ukončiť program?", 292, "Otázka") = 6 Then

      End

End If

Ak chceme zaznamenať, ktoré tlačidlo bolo stlačené, môžeme to urobiť v rámci If-u, alebo si na to môžeme vytvoriť premennú a vrátenú hodnotu jej priradiť priamo a následne s ňou pracovať kdekoľvek v kóde :

Dim i As Byte

i = MsgBox("Chcete ukončiť program?", 292, "Otázka")

Ak sa chcete presvedčiť, či to funguje, nie je nič jednoduchšie ako na formulár nakresliť prvok Label a priradiť mu hodnotu i.

Label1.Text = i


Spôsob druhý

Ako som sľuboval, ukážeme si viac spôsobov ako zavolať funkciu na zobrazenie dialógového okna. Tento spôsob má viac parametrov, avšak o to jednoduchšie sa s nimi dá pracovať.

MessageBox.Show(text, nadpis, tlačidlo, obrázok, prednastavené tlačidlo, rôzne nastavenia, tlačidlo pomoci)

Náš príklad by sme týmto spôsobom zapísali nasledovne:

MessageBox.Show("hello, world", "Metóda MessageBox.Show()", _ MessageBoxButtons.OKCancel, MessageBoxIcon.Information, _

MessageBoxDefaultButton.Button1)

Znak _ (podtržník) iba určuje zalomenie príkazu, aby prekladač vedel, že ste príkaz neukončili nesprávne, ale že pokračuje na ďalšom riadku. Použil som ho preto, lebo by sa nezmestil na šírku stránky.

V tomto zápise opäť platí, že je povinný iba prvý parameter, no na rozdiel od predošlého spôsobu, tu nemožno nahrádzať MessageBox funkcie číselnými hodnotami.

Parameter rôzne nastavenia sa môže použiť napríklad pre formátovanie textu sprava doľava ako MessageBoxOptions.RtlReading ai.
 

MsgBox-RTL

 

Prvok CheckBox – ‚štvorček s fajkou‘

Ďalším známym a dôležitým prvkom je zaškrtávacie políčko - CheckBox. Najčastejšie ho nájdeme v rôznych nastaveniach aplikácií, alebo dokonca aj na rôznych portáloch a fórach kde potvrdzujete napr. automatické prihlasovanie.

Jednou z možností ako použiť tento prvok po zaškrtnutí – odškrtnutí je priamo v primárnom handlery  CheckBox1_CheckedChanged a to:

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

        Button1.Enabled = Not Button1.Enabled

End Sub

Funkciu  Not si môžeme priblížiť pomocou matematických operácií s výrokmi. Jedná sa totiž o funkciu, ktorá neguje pôvodný výrok. Ak budeme negovať výrok: „Súčin dvoch záporných reálnych čísel je kladný“ dostaneme výrok: „Súčin dvoch záporných reálnych čísel nie je kladný“ a naopak. V našom prípade teda prekladač najprv zistí stav tlačidla a potom ho zneguje. Viditeľné skryje a naopak.

CheckBox

 

Ak chceme zisťovať stav CheckBoxu kdesi inde v našom kóde, použijeme If:

If CheckBox1.Checked = True Then

     ' tieto príkazy sa vykonajú, ak je políčko zaškrtnuté

     ' tu bude nasledovať blok príkazov

     ' - apostrof na začiatku riadku znamená komentár

     ' nič takto zakomentované sa nevykoná

End If

Rovnakým spôsobom sa dá skontrolovať opačný stav a to ako:

If CheckBox1.Checked = False Then


Prvok RadioButton – prepínač

RadioButton je podobný predchádzajúcemu prvku. Hlavný rozdiel je však v tom, že CheckBoxov môže byť naraz zaškrtnuté ľubovoľné množstvo, na rozdiel od toho RadioButton v jednom kontajnery vždy iba jeden. Kontajnerom sa rozumie napríklad aj GroupBox, alebo proste hlavný formulár aplikácie.

Nakreslite si na okno niekoľko týchto prvkov a aplikáciu spustite v režime ladenia (kláves F5, alebo šípka s popisom „Start Debugging“). Ihneď po nabehnutí sa Vám prvý nakreslený prvom zaškrtne, alebo v tomto prípade skorej ‚zabodkuje‘. Je to z dôvodu toho, aby bol užívateľ prinútený, nejaký výber urobiť.

Jednoduchá ukážka použitia v handlery tlačidla pre tri RadioButton na formuláry:

If RadioButton1.Checked = True Then

     Label1.Text = "Výber - č.1"

ElseIf RadioButton2.Checked = True Then

     Label1.Text = "Výber - č.2"

ElseIf RadioButton3.Checked = True Then

     Label1.Text = "Výber - č.3"

End If

Tento zápis, sa dá zjednodušiť, keďže sú tri možnosti platnosti podmienky a jedna z nich vždy musí platiť:

If RadioButton1.Checked = True Then

     Label1.Text = "Výber - č.1"

ElseIf RadioButton2.Checked = True Then

     Label1.Text = "Výber - č.2"

Else

     Label1.Text = "Výber - č.3"

End If



Záver

Chcem Vám pri programovaní a jeho učení sa popriať veľa zdaru, pevných nervov a čo najmenej chýb v kóde. Dúfam, že sa Vám aj tento diel páčil a verím, že sa stretneme aj nabudúce.

Ďakujem za pozornosť a prajem pekný zvyšok dňa.

Peter Hrdlica

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies