Windows applicaties met VB.NET VB Express 2010 HA 2258 01 Informaticabeheer(nieuw leerplan D/2010/7841/004) Marc De Wandel, Gerry Everaert, Nicole Legroe Christel Valkeners, Ria Van Eysendeyk Werkgroep Handel 2011 Vlaams Verbond van het Katholiek Secundair Onderwijs Guimardstraat 1, 1040 Brussel
Vlaams Verbond van het Katholiek Secundair Onderwijs Guimardstraat 1, 1040 Brussel Windows applicaties met VB.NET VB Express 2010 HA 2258 01 Informaticabeheer(nieuw leerplan D/2010/7841/004) Marc De Wandel, Gerry Everaert, Nicole Legroe Christel Valkeners, Ria Van Eysendeyk Werkgroep Handel 2011 http://handel.vvkso.net D/2011/7841/091 Alle rechten voorbehouden. Behoudens de uitdrukkelijk bij wet bepaalde uitzonderingen mag niets uit deze uitgave worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand of openbaar gemaakt, op welke wijze ook, zonder de uitdrukkelijke voorafgaande en schriftelijke toestemming van het VVKSO.
Inhoud 1 Kennismaken... 7 1.1 Inleiding... 7 1.2 Installeren Visual Basic 2010 Express Edition... 7 1.3 Visual Basic 2010 Express Edition opstarten... 7 1.4 Kennismaking met de omgeving... 8 1.4.1 Een bestaand project openen... 8 1.4.2 Delen van de omgeving... 8 1.4.3 Toepassing testen in Visual Basic 2010 Express Edition... 14 1.5 Eigenschappen, gebeurtenissen en methodes in VB.NET... 15 1.5.1 Eigenschappen (Properties)... 15 1.5.2 Gebeurtenissen (Events)... 16 1.5.3 Methodes (Methods)... 17 1.6 De Object Browser... 18 1.7 Zelf een eerste toepassing ontwikkelen... 19 1.7.1 Stappenplan... 19 1.7.2 Een nieuw project maken... 19 1.8 Visual Basic Help... 22 2 Bouwstenen... 25 2.1 Voorbereiding... 25 2.2 Rekenen en vergelijken... 27 2.2.1 Voorbeeld... 27 2.2.2 Operatoren... 27 2.3 Eenvoudige uitvoer... 28 2.3.1 Syntaxis... 29 2.3.2 Voorbeeld... 29 2.4 Variabelen en constanten... 30 2.4.1 Voorbeeld... 30 2.4.2 Declareren Option Explicit... 30 2.4.3 Gegevenstypes... 33 2.4.4 Toewijzen... 33 2.4.5 Afspraken... 34 2.4.6 Option Strict... 34 2.5 Invoer van gegevens... 35 2.5.1 Voorbeeld... 35 2.5.2 Andere invoermogelijkheden... 38 2.6 Formulieren werken samen... 38 2.7 Analyse en documentatie... 39 2.7.1 Zelf oplossing bedenken... 39 2.7.2 Voorbeeld... 39 2.7.3 Nassi Shneiderman diagrammen... 43 2.7.4 Commentaar opnemen... 43 2.8 Oefeningen... 43 3 Ingebouwde functies en procedures... 51 3.1 Wiskundige functies... 51 3.1.1 Klasse Math... 51 3.1.2 Voorbeeld... 51 3.2 Datumfuncties... 55 3.2.1 Klasse Datetime... 55 3.2.2 Voorbeeld... 56
3.3 Stringfuncties... 59 3.3.1 Klasse String... 59 3.3.2 Voorbeeld... 60 3.4 Omgevingsinformatie... 63 3.4.1 Klasse Environment... 63 3.4.2 Voorbeeld... 64 3.5 Oefeningen... 65 4 Console toepassingen... 67 4.1 Creatie van een console toepassing... 67 4.2 Oefeningen... 68 5 Controlestructuur: Sequentie... 69 5.1 Voorbeelden... 69 5.2 Project Sequenties... 69 5.3 Voorbeeld met horizontale scrollbars... 70 5.3.1 Probleemstelling... 70 5.3.2 Analyse en documentatie... 70 5.3.3 Implementatie... 72 5.4 Voorbeeld met radiobuttons en picturebox... 73 5.4.1 Probleemstelling... 73 5.4.2 Analyse en documentatie... 73 5.4.3 Implementatie... 75 5.5 Voorbeeld met Structure en event MouseEnter... 76 5.5.1 Probleemstelling... 77 5.5.2 Probleemanalyse... 77 5.5.3 Implementatie... 78 5.6 Oefeningen... 79 6 Controlestructuur: selectie of keuze structuur... 81 6.1 De enkelvoudige keuzestructuur... 81 6.1.1 Algoritme... 81 6.1.2 Syntaxis... 81 6.1.3 Voorbeeld... 81 6.2 De tweevoudige keuzestructuur... 83 6.2.1 Algoritme... 84 6.2.2 Syntaxis... 84 6.2.3 Voorbeeld 1... 84 6.2.4 Voorbeeld 2... 85 6.3 De meervoudige selectie of CASE structuur... 87 6.3.1 Algoritme... 88 6.3.2 Syntaxis... 88 6.3.3 Voorbeeld 1... 89 6.3.4 Voorbeeld 2... 91 6.3.5 Voorbeeld 3... 94 6.3.6 Voorbeeld 4... 97 6.4 Oefeningen... 99 7 Controlestructuur: iteratie of herhalingsstructuur... 105 7.1 De begrensde iteratie... 105 7.1.1 Algoritme... 105 7.1.2 Syntaxis... 105 7.1.3 Voorbeeld 1... 105
7.1.4 Voorbeeld 2... 109 7.2 De voorwaardelijke iteratie met aanvangsvoorwaarde... 110 7.2.1 Algoritme... 110 7.2.2 Syntaxis... 110 7.2.3 Voorbeeld 1... 110 7.2.4 Voorbeeld 2... 114 7.3 De voorwaardelijke iteratie met eindvoorwaarde... 115 7.3.1 Algoritme... 115 7.3.2 Syntaxis... 116 7.3.3 Voorbeeld 1... 116 7.3.4 Voorbeeld 2... 120 7.4 Collecties For Each... 122 7.4.1 Syntaxis... 122 7.4.2 Voorbeeld 1... 122 7.4.3 Voorbeeld 2... 123 7.4.4 Voorbeeld 3... 125 7.5 Oefeningen... 127 8 Geneste controlestructuren...133 8.1 Voorbeeld... 133 8.1.1 Probleemstelling... 133 8.1.2 Probleemanalyse en implementatie... 133 8.1.3 Implementatie... 133 8.2 Oefeningen... 134 9 Zelfgedefinieerde functies en procedures...137 9.1 Functie... 137 9.2 Procedure... 138 9.3 Voorbeeld 1... 139 9.3.1 Probleemstelling... 139 9.3.2 Analyse en documentatie... 139 9.3.3 Implementatie... 141 9.3.4 Analyse en documentatie... 141 9.3.5 Implementatie... 142 9.3.6 Uitbreiding probleemstelling... 143 9.4 Voorbeeld 2... 144 9.4.1 Probleemstelling... 145 9.4.2 Analyse en documentatie... 145 9.4.3 Implementatie... 146 9.4.4 Analyse en documentatie... 147 9.4.5 Implementatie... 147 9.5 Voorbeeld 3... 147 9.5.1 Probleemstelling... 147 9.5.2 Implementatie... 148 9.6 Oefeningen... 148 10 Bereik, beschikbaarheid en levensduur...151 10.1 Algemene begrippen... 151 10.1.1 Declaratieruimten... 151 10.1.2 Bereik... 151 10.1.3 Beschikbaarheid... 152 10.1.4 Variabelen declareren... 152 10.2 10.2.1 Voorbeeld 1 Klasseniveau Private... 154 Probleemstelling... 154
10.2.2 Probleemanalyse en implementatie... 155 10.2.3 Implementatie... 155 10.3 Voorbeeld 2 Klasseniveau Public... 156 10.3.1 Probleemstelling... 156 10.3.2 Implementatie... 157 10.4 Voorbeeld 3 Klasseniveau Private Static... 159 10.4.1 Probleemstelling... 159 10.4.2 Probleemanalyse en implementatie... 159 10.4.3 Implementatie... 160 10.5 Oefeningen... 160 11 Validation... 163 11.1 Controle op leeg tekstvak... 163 11.2 Controle op patroon... 164 11.3 De visuele foutaanduiding verwijderen... 165 11.4 Een fraaiere oplossing... 166 11.5 Hulp voor de gebruiker... 167 11.6 Oefeningen... 168 12 Werken met Arrays... 169 12.1 Inleiding... 169 12.2 Een Array of matrix... 169 12.3 Declaratie en initialisatie van een array... 169 12.3.1 Fixed size array... 170 12.3.2 Dynamische array... 171 12.4 Enkele belangrijke eigenschappen van arrays... 172 12.5 Voorbeeld 1 Eendimensionale array... 172 12.5.1 Probleemstelling... 173 12.5.2 Analyse en documentatie... 173 12.5.3 Implementatie... 174 12.6 Voorbeeld 2 Tweedimensionale array... 175 12.6.1 Probleemstelling... 175 12.6.2 Analyse en documentatie... 175 12.6.3 Implementatie... 177 12.7 Voorbeeld 3 ReDim Preserve... 178 12.8 Oefeningen... 179 13 Fouten en foutafhandeling... 183 13.1 Voorbeeld... 183 13.1.1 Fouten tijdens compilatie... 183 13.1.2 Fouten tijdens runtime... 184 13.1.3 Een logische fout... 187 13.2 Soorten Fouten... 188 13.2.1 Syntaxisfouten... 188 13.2.2 Semantische fouten... 189 13.2.3 Logische fouten of denkfouten... 190 13.2.4 Runtime fouten en robuustheid... 190 13.2.5 Exception, uitzondering... 191 13.2.6 Voorbeeld 1... 192 13.2.7 Voorbeeld 2... 197 13.3 Debug mogelijkheden in Visual Basic... 198 13.3.1 Een Breakpoint... 199 13.3.2 De werkbalk Debug... 200 13.3.3 Het Command Window Immediate... 201
13.3.4 Inhoud van variabelen volgen... 202 13.3.5 Het Output venster... 203 13.3.6 De Debug.Write methode... 203 14 Grafisch...205 14.1 Timer ImageList ContextMenu... 205 14.1.1 Voorbeeld 1... 205 14.1.2 Voorbeeld 2... 207 14.2 Menu balk met deelmenu s... 210 14.2.1 Menu balk op het formulier plaatsen... 210 14.2.2 Gebeurtenis koppelen aan een menu item... 211 14.3 Oefeningen... 211 15 Module...213 15.1 Voorbeeld... 213 15.1.1 Probleemstelling... 213 15.1.2 Probleemanalyse en documentatie... 213 16 Distribueren van toepassingen...221 16.1 Een setupprogramma maken met behulp van de Publish Wizard... 221 16.2 Het setup of updateprogramma maken/aanpassen... 224 16.3 Een installatiepakket uitvoeren... 226 16.4 Desinstalleren van een zelfgemaakt pakket... 226 17 Bijlagen...227 17.1 Bijlage 1: Dot Net Naming Convention... 227 17.2 Bijlage 2: Declaratie en gegevenstypes van variabelen... 229