1147
Cours VB.NET par Philippe Lasserre Date de publication : Dernière mise à jour : 08/01/2011 Il s'agit d'un cours de Visual Basic.Net © de Microsoft complet, pour débutants (pas de pré requis) ou programmeurs voulant passer à la version .net . Autres contributions du même auteur: Cours sur Chart permettant d'afficher des graphiques Pour voir et télécharger LDF: logiciel de compta en Shareware, cliquer ici. Télécharger un dictionnaire médical gratuit pour Word. [email protected] Nouveau: MAJ avec VB 2010, Nouvelles rubriques: en WPF

Plasserre Vb Net2

Embed Size (px)

Citation preview

  • Cours VB.NET

    par Philippe Lasserre

    Date de publication :

    Dernire mise jour : 08/01/2011

    Il s'agit d'un cours de Visual Basic.Net de Microsoft complet, pour dbutants (pas de prrequis) ou programmeurs voulant passer la version .net .Autres contributions du mme auteur:Cours sur Chart permettant d'afficher des graphiquesPour voir et tlcharger LDF: logiciel de compta en Shareware, cliquer ici.Tlcharger un dictionnaire mdical gratuit pour [email protected]

    Nouveau: MAJ avec VB 2010, Nouvelles rubriques: en WPF

  • Cours VB.NET par Philippe Lasserre

    - 2 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    I - Introduction............................................................................................................................................................23II - Que trouver dans ce cours ?...............................................................................................................................24

    II-A - Qu'allons-nous tudier ?............................................................................................................................. 24II-B - Quel plan de cours suivrons-nous ?...........................................................................................................24II-C - Quels logiciels utiliser ?.............................................................................................................................. 24II-D - Quelle configuration est ncessaire ?........................................................................................................ 26II-E - propos de l'auteur................................................................................................................................... 26

    III - Principe et structure des programmes................................................................................................................28III-A - Les 'Objets'.................................................................................................................................................28

    III-A-1 - Dans la vie courante......................................................................................................................... 28III-A-2 - Dans Visual Basic.net....................................................................................................................... 31

    III-B - Programmation vnementielle : le premier programme...........................................................................36III-B-1 - Principes de la programmation VB................................................................................................... 36III-B-2 - Exemple : le premier programme......................................................................................................36III-B-3 - En pratique, que fait le programmeur ?............................................................................................ 37

    III-B-3-a - Il dessine l'interface utilisateur..................................................................................................37III-B-3-b - Il crit le code correspondant aux vnements........................................................................38

    III-C - Les instructions, les procdures : les 'Sub', les 'Function'.........................................................................39III-C-1 - Les instructions................................................................................................................................. 39III-C-2 - Les procdures..................................................................................................................................41III-C-3 - Procdures lies aux vnements....................................................................................................42III-C-4 - Procdures non lies........................................................................................................................ 44III-C-5 - Procdures 'Sub'............................................................................................................................... 45III-C-6 - Procdures 'Function'........................................................................................................................46III-C-7 - Module standard................................................................................................................................47III-C-8 - Private Public.................................................................................................................................... 47III-C-9 - Remarques........................................................................................................................................ 48III-C-10 - Lexique anglais=>Franais..............................................................................................................48

    III-D - Les modules...............................................................................................................................................49III-D-1 - Qu'est ce qu'un module ?................................................................................................................. 49III-D-2 - Comment crer un module standard................................................................................................ 51III-D-3 - Lexique anglais=>Franais................................................................................................................52

    III-E - Notion de programmation 'procdurale' et de programmation 'objet'........................................................ 52IV - Environnement de dveloppement : les EDI/IDE............................................................................................... 53

    IV-A - IDE Visual Studio 2008 (Microsoft)........................................................................................................... 53IV-A-1 - Interface 'Windows Forms'................................................................................................................55IV-A-2 - Interface WPF................................................................................................................................... 64IV-A-3 - Vb propose des aides.......................................................................................................................66

    IV-B - Visual Basic 2010 Express........................................................................................................................70IV-B-1 - Interface 'Windows Forms'................................................................................................................72

    IV-B-1-a - Fentre Projet...........................................................................................................................72IV-B-1-b - Crer ou ajouter une fentre 'WinForm'...................................................................................75IV-B-1-c - Le concepteur (Designer)......................................................................................................... 76IV-B-1-d - Les procdures:........................................................................................................................76IV-B-1-e - Ajouter des contrles au formulaire......................................................................................... 81IV-B-1-f - Voir tous les composants d'un projet:....................................................................................... 83IV-B-1-g - Tester son logiciel.....................................................................................................................83IV-B-1-h - Sauvegarde, Projet, chemin..................................................................................................... 84IV-B-1-i - Proprits du projet................................................................................................................... 85IV-B-1-j - Autre...........................................................................................................................................86

    IV-B-2 - Interface WPF................................................................................................................................... 87IV-B-3 - Vb propose des aides.......................................................................................................................88

    IV-C - IDE SharpDevelop (logiciel libre en Open Spource).................................................................................92IV-C-1 - O le trouver ? Comment l'installer ?............................................................................................... 92IV-C-2 - Fentre Projet Windows Forms........................................................................................................ 93

    IV-C-2-a - Dans un nouveau projet, crer une fentre............................................................................. 95IV-C-2-b - Ajouter des contrles au formulaire......................................................................................... 96IV-C-2-c - Modifier les proprits d'un contrle ou du formulaire............................................................. 97

  • Cours VB.NET par Philippe Lasserre

    - 3 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    IV-C-2-d - Voir les procdures.................................................................................................................. 98IV-C-2-e - Voir tous les composants d'un projet, les classes................................................................... 98IV-C-2-f - Remarque relative aux fentres de l'IDE.................................................................................. 99

    IV-C-3 - Interface WPF................................................................................................................................... 99IV-C-4 - Tester son logiciel........................................................................................................................... 101IV-C-5 - Fichiers, Chemins des sources...................................................................................................... 102IV-C-6 - Proprits du projet........................................................................................................................ 102IV-C-7 - #Develop propose des aides.......................................................................................................... 103IV-C-8 - Erreur de compilation......................................................................................................................104IV-C-9 - Erreur d'excution : Exceptions...................................................................................................... 104IV-C-10 - Dbogage......................................................................................................................................105IV-C-11 - Conclusion.....................................................................................................................................106IV-C-12 - J'ai besoin d'aide.......................................................................................................................... 107

    V - Langage Visual Basic........................................................................................................................................ 108V-A - Introduction............................................................................................................................................... 108

    V-A-1 - Les Classes du framework.............................................................................................................. 108V-A-2 - Les instructions de Microsoft.VisualBasic........................................................................................109V-A-3 - Saisir, Afficher.................................................................................................................................. 109

    V-B - Les 'Algorithmes'.......................................................................................................................................111V-B-1 - Pour crire un programme...............................................................................................................111V-B-2 - Dfinition de l'algorithme..................................................................................................................112V-B-3 - Structures lmentaires:.................................................................................................................. 114

    V-B-3-a - Squences............................................................................................................................... 114V-B-3-b - Variables, 'Type' de variable....................................................................................................114V-B-3-c - Constantes............................................................................................................................... 116V-B-3-d - Affectation (ou Assignation).....................................................................................................116V-B-3-e - Boolens.................................................................................................................................. 118V-B-3-f - Choix : Si..Alors........................................................................................................................ 118V-B-3-g - Choix: Dcider entre................................................................................................................120V-B-3-h - Rptitions : Pour...Rpter.....................................................................................................122V-B-3-i - Rptitions : Tant que...............................................................................................................123V-B-3-j - Logique : Et, Ou, Non...............................................................................................................124V-B-3-k - Les Sauts.................................................................................................................................125V-B-3-l - Programmation structure........................................................................................................ 125V-B-3-m - 'Sous-programme' ou 'procdure'...........................................................................................126V-B-3-n - Tableaux...................................................................................................................................128V-B-3-o - Collection................................................................................................................................. 130V-B-3-p - Pile et Queue.......................................................................................................................... 130V-B-3-q - Liste Chane.......................................................................................................................... 131V-B-3-r - Notion de Cl........................................................................................................................... 132V-B-3-s - Notion de Hachage..................................................................................................................132V-B-3-t - Arbre......................................................................................................................................... 134V-B-3-u - Erreur d'excution : Notion de 'Scurisation' du code.............................................................134V-B-3-v - Rcursivit............................................................................................................................... 135V-B-3-w - Flag et variables d'tat........................................................................................................... 135V-B-3-x - Compilation, interprtation....................................................................................................... 136

    V-B-4 - Grandes stratgies...........................................................................................................................136V-B-5 - Quelques algorithmes...................................................................................................................... 137

    V-B-5-a - Recherche dans un tableau.................................................................................................... 138V-B-5-b - Tri de tableau.......................................................................................................................... 139

    V-B-6 - Lexique anglais=>Franais.............................................................................................................. 140V-C - L'affectation...............................................................................................................................................141V-D - Les variables : gnralits........................................................................................................................143

    V-D-1 - Nom des variables...........................................................................................................................144V-D-2 - Dclaration, initialisation.................................................................................................................. 145V-D-3 - En pratique : Exemple..................................................................................................................... 146V-D-4 - Les diffrents types de variables.....................................................................................................147V-D-5 - Les Boolean..................................................................................................................................... 147

  • Cours VB.NET par Philippe Lasserre

    - 4 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    V-D-6 - Variable entire................................................................................................................................ 148V-D-7 - Variable relle.................................................................................................................................. 148V-D-8 - String, Char......................................................................................................................................150V-D-9 - Place occupe en mmoire.............................................................................................................151V-D-10 - Type primitif, littral........................................................................................................................151V-D-11 - Nullable...........................................................................................................................................152V-D-12 - Choix des noms de variables........................................................................................................ 153

    V-E - Variables 'String' et 'Char'.........................................................................................................................153V-E-1 - Variables 'String'...............................................................................................................................153

    V-E-1-a - La Classe System.String......................................................................................................... 155V-E-1-b - Les instructions 'Visual Basic'................................................................................................. 163V-E-1-c - Un exemple..............................................................................................................................168V-E-1-d - Comparaison de caractres (Option Compare)...................................................................... 169V-E-1-e - Comparaison avec Equals et String.Compare........................................................................ 170V-E-1-f - Unicode.....................................................................................................................................171

    V-E-2 - Variables 'Char'................................................................................................................................ 172V-E-3 - Et les Chanes de longueur fixe...................................................................................................... 174V-E-4 - Regex, expressions rgulires.........................................................................................................175

    V-E-4-a - Principe du regex.................................................................................................................... 175V-E-4-b - Caractres pour modle regex................................................................................................176V-E-4-c - Exemples................................................................................................................................. 177V-E-4-d - Divers utilisations de Regex....................................................................................................178

    V-E-5 - StringBuilder..................................................................................................................................... 180V-F - Variables Numriques............................................................................................................................... 181

    V-F-1 - La Classe Math du Framework........................................................................................................182V-F-2 - Les instructions du langage VisualBasic..........................................................................................184V-F-3 - Dpassement de capacit, 'Non Nombre'........................................................................................185V-F-4 - Problme de prcision..................................................................................................................... 185V-F-5 - BigInteger......................................................................................................................................... 186V-F-6 - Nombre Complexe........................................................................................................................... 187

    V-G - Conversion, sparateur dcimal.............................................................................................................. 189V-G-1 - Conversion numrique vers String.................................................................................................. 189V-G-2 - Conversion String vers numrique.................................................................................................. 189V-G-3 - Tous les modes de conversion........................................................................................................190V-G-4 - Pour rsumer et faire trs simple, retenir....................................................................................... 193V-G-5 - Conversion Explicite et Implicite......................................................................................................193V-G-6 - Conversion restrictive, erreur.......................................................................................................... 194V-G-7 - Erreur de dpassement de capacit dans les calculs.....................................................................194V-G-8 - Sparateur dcimal : le point, la virgule, Culture............................................................................ 195V-G-9 - IsNumeric......................................................................................................................................... 196V-G-10 - Lexique anglais=>Franais............................................................................................................ 196

    V-H - Les 'Tableaux'........................................................................................................................................... 197V-H-1 - Un tableau est un objet de type Array............................................................................................ 202V-H-2 - Fonction avances sur les tableaux................................................................................................ 205V-H-3 - Exemple courant d'utilisation des tableaux......................................................................................209

    V-I - Les 'Collections'......................................................................................................................................... 211V-I-1 - Exemple simpliste..............................................................................................................................211V-I-2 - Classification des collections.............................................................................................................212V-I-3 - ArrayList.............................................................................................................................................213V-I-4 - List (Of)..............................................................................................................................................216V-I-5 - HashTable.......................................................................................................................................... 220V-I-6 - Dictionnary (Of)................................................................................................................................. 221V-I-7 - SortedList SortedList (Of)et SortedSet..............................................................................................223V-I-8 - Queue................................................................................................................................................ 224V-I-9 - Stack.................................................................................................................................................. 225V-I-10 - Les LinkedList (Of).......................................................................................................................... 226V-I-11 - HashSet (Of)....................................................................................................................................227V-I-12 - BitArray............................................................................................................................................ 229

  • Cours VB.NET par Philippe Lasserre

    - 5 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    V-I-13 - StringCollection................................................................................................................................230V-I-14 - ObservableCollections, SortedSet(Of T)......................................................................................... 231V-I-15 - Gnralisation de la notion de collection........................................................................................ 231V-I-16 - Pourquoi le premier lment est-il 0 ou 1 ?....................................................................................232V-I-17 - Exemples sur les collections........................................................................................................... 232V-I-18 - Lexique anglais=>Franais..............................................................................................................233

    V-J - Les 'Structures'..........................................................................................................................................233V-J-1 - Tableau dans une structure..............................................................................................................234V-J-2 - Allons plus loin................................................................................................................................. 236

    V-J-2-a - Les structures sont des types 'valeur'......................................................................................236V-J-2-b - Les structures peuvent contenir plein de choses.................................................................... 237V-J-2-c - Porte....................................................................................................................................... 238

    V-K - Type valeur ou rfrence......................................................................................................................... 238V-K-1 - La variable 'par Valeur'.................................................................................................................... 239V-K-2 - La variable 'par Rfrence'.............................................................................................................. 239V-K-3 - Influence sur l''Affectation'................................................................................................................239V-K-4 - Copie d'objet By Ref: exemple des Tableaux..................................................................................240V-K-5 - Le cas particulier des 'String'...........................................................................................................241V-K-6 - Dclaration avec New ?................................................................................................................... 242V-K-7 - Valeur aprs dclaration.................................................................................................................. 242V-K-8 - Comparaison.................................................................................................................................... 243V-K-9 - IsReference...................................................................................................................................... 243

    V-L - Variable 'Object' et autre type...................................................................................................................244V-L-1 - Le Type 'Object'................................................................................................................................244

    V-L-1-a - Comment utiliser les proprits d'un objet ?........................................................................... 245V-L-1-b - Comparaison d'objets.............................................................................................................. 246V-L-1-c - Nothing..................................................................................................................................... 246

    V-L-2 - Les variables d'autres types.............................................................................................................246V-L-3 - Utilisez donc des variables le plus types possible......................................................................... 247V-L-4 - Attention quand on met un objet dans une variable objet............................................................... 247

    V-M - Variable Boolenne.................................................................................................................................. 248V-M-1 - Introduction...................................................................................................................................... 248V-M-2 - Les boolens................................................................................................................................... 248V-M-3 - Les conditions..................................................................................................................................249V-M-4 - Les oprateurs logiques.................................................................................................................. 250

    V-N - Soyons strict et explicite (et Compare et Infer ?).....................................................................................252V-N-1 - Notion de conversion Explicite et Implicite...................................................................................... 252V-N-2 - Comment modifier une option ?...................................................................................................... 253V-N-3 - Option Strict..................................................................................................................................... 253

    V-N-3-a - Conversions implicites.............................................................................................................253V-N-3-b - Conversions String-numrique................................................................................................ 254V-N-3-c - Liaisons tardives......................................................................................................................255V-N-3-d - VB rapide ?..............................................................................................................................255

    V-N-4 - Option Explicit.................................................................................................................................. 255V-N-5 - Option strict et Explicit dans un module..........................................................................................256V-N-6 - Option Compare...............................................................................................................................256V-N-7 - Option Infer...................................................................................................................................... 257

    V-O - Les constantes, les numrations........................................................................................................... 258V-O-1 - Constantes....................................................................................................................................... 258

    V-O-1-a - Intrts des constantes ?........................................................................................................258V-O-1-b - Constantes prdfinies de VB................................................................................................ 259V-O-1-c - True False............................................................................................................................... 260

    V-O-2 - numration.....................................................................................................................................260V-O-3 - Les numrations VB.NET.............................................................................................................. 264

    V-O-3-a - ControlChars........................................................................................................................... 264V-O-3-b - Couleurs.................................................................................................................................. 265V-O-3-c - Math.........................................................................................................................................265V-O-3-d - Touche du clavier dans le Framework....................................................................................265

  • Cours VB.NET par Philippe Lasserre

    - 6 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    V-O-3-e - Autre exemple......................................................................................................................... 266V-P - Les oprateurs..........................................................................................................................................266

    V-P-1 - Addition : +....................................................................................................................................... 266V-P-2 - Soustraction : -................................................................................................................................. 266V-P-3 - Multiplication : *................................................................................................................................ 267V-P-4 - Division : /......................................................................................................................................... 267V-P-5 - Division entire: \............................................................................................................................. 267V-P-6 - Puissance : ^....................................................................................................................................267V-P-7 - Modulo : Mod................................................................................................................................... 267V-P-8 - Concatnation : &.............................................................................................................................268V-P-9 - Priorits............................................................................................................................................ 268V-P-10 - Comparaison.................................................................................................................................. 269V-P-11 - Logique : Not And Or ElseOr Xor.................................................................................................. 270

    V-P-11-a - Si A et B sont des expressions boolennes..........................................................................270V-P-11-b - Si A et B sont des nombres (Integer par exemple)...............................................................270V-P-11-c - Les oprateurs And, Or et Xor sont valus en fonction du type des oprandes..................271

    V-P-11-c-i - Pour le type Boolean......................................................................................................271V-P-11-c-ii - Pour les types Byte, Short, Integer, Long et tous les types numrs.......................... 271

    V-P-12 - Dplacement de bits...................................................................................................................... 272V-P-13 - Remarque 1 : Allons plus loin avec / et \.......................................................................................272V-P-14 - Remarque 2 : Division par zro..................................................................................................... 273

    V-Q - Les structures de contrle : Choix et boucles......................................................................................... 273V-Q-1 - If Then..............................................................................................................................................274V-Q-2 - Select Case..................................................................................................................................... 277V-Q-3 - For Next........................................................................................................................................... 279V-Q-4 - Do Loop........................................................................................................................................... 281V-Q-5 - While End While.............................................................................................................................. 283V-Q-6 - For Each.......................................................................................................................................... 284V-Q-7 - Switch...............................................................................................................................................285V-Q-8 - IIF..................................................................................................................................................... 286

    V-R - Les procdures et leurs paramtres........................................................................................................ 286V-R-1 - Les parenthses.............................................................................................................................. 287V-R-2 - Par Valeur, Par Rfrence...............................................................................................................288V-R-3 - Par Dfaut, que se passe-t-il ?........................................................................................................289V-R-4 - Optional............................................................................................................................................ 290V-R-5 - Tableau de paramtres.................................................................................................................... 290V-R-6 - ParamArray...................................................................................................................................... 290V-R-7 - Porte des procdures.................................................................................................................... 291V-R-8 - Nommage.........................................................................................................................................291

    V-S - Porte des variables.................................................................................................................................292V-S-1 - Dans les procdures........................................................................................................................ 292V-S-2 - Dans un bloc d'instructions..............................................................................................................293V-S-3 - Dans la section dclaration d'un Module.........................................................................................294V-S-4 - Dans la section dclaration d'une fentre, d'un formulaire..............................................................294V-S-5 - En pratique.......................................................................................................................................295V-S-6 - En gnral........................................................................................................................................296

    V-T - Les nombres alatoires............................................................................................................................ 296V-T-1 - Avec la classe 'Random' du Framework..........................................................................................296V-T-2 - Avec les instructions Rnd() et Randomize() de Visual Basic.Net.................................................... 298V-T-3 - En cryptographie avec le Framework.............................................................................................. 299V-T-4 - Un peu de thorie............................................................................................................................ 299

    V-U - La 'Rcursivit'......................................................................................................................................... 301V-U-1 - Rgles fondamentales d'une fonction rcursive.............................................................................. 303V-U-2 - Exemple 1 : Inversion de chanes................................................................................................... 304V-U-3 - Exemple 2 : Calcul de 'Factorielle'.................................................................................................. 305V-U-4 - Exemple 3 : Calcul d'une expression avec parenthses multiples.................................................. 306V-U-5 - Exemple 4 : PGCD.......................................................................................................................... 307V-U-6 - Exemple 5 : Tri rcursif....................................................................................................................307

  • Cours VB.NET par Philippe Lasserre

    - 7 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    V-U-7 - Exemple 6 : Parcours de rpertoires et de sous rpertoires...........................................................308V-U-8 - Exemple 7 : valuation d'un nombre crit en chiffres romains........................................................309V-U-9 - Exemple 8 : Suite de Fibonacci.......................................................................................................311V-U-10 - Exemple 9 : Fractales.................................................................................................................... 312V-U-11 - Autre............................................................................................................................................... 315

    V-V - Faut-il oublier le GoTo ?........................................................................................................................... 315V-V-1 - Le 'Goto'........................................................................................................................................... 316V-V-2 - Pourquoi viter le 'GoTo'..................................................................................................................316V-V-3 - Quand utiliser le 'GoTo'....................................................................................................................317

    V-W - Les bases binaires, hexadcimales, l'algbre de Boole..........................................................................319V-W-1 - Introduction......................................................................................................................................320V-W-2 - Notions thoriques.......................................................................................................................... 320V-W-3 - Pratique en Visual Basic.................................................................................................................338V-W-4 - Viewer hexadcimal........................................................................................................................ 347V-W-5 - diteur hexadcimal........................................................................................................................348

    V-X - Les gnriques......................................................................................................................................... 348V-X-1 - Dfinition...........................................................................................................................................348V-X-2 - Intrts des gnriques ?................................................................................................................ 350V-X-3 - Usage des gnriques..................................................................................................................... 350

    V-Y - Linq........................................................................................................................................................... 351V-Y-1 - Dfinition, mise en place..................................................................................................................351V-Y-2 - Principe d'une requte Linq............................................................................................................. 353V-Y-3 - Link et les tableaux d'Integers......................................................................................................... 354V-Y-4 - Link et les chanes de caractres....................................................................................................355V-Y-5 - Link et les mots d'une chane de caractres...................................................................................356V-Y-6 - Link pour rechercher la diffrence entre deux listes de noms.........................................................357V-Y-7 - Link et les contrles.........................................................................................................................357V-Y-8 - Inference de Type et type anonyme................................................................................................ 357

    V-Z - Les 'Region', compilation conditionnelle, 'Attributs'.................................................................................. 358V-Z-1 - Les Rgions..................................................................................................................................... 359V-Z-2 - La Compilation conditionnelle.......................................................................................................... 359V-Z-3 - Les Attributs..................................................................................................................................... 360

    V-AA - Traiter les erreurs...................................................................................................................................361V-AA-1 - Les erreurs de syntaxe..................................................................................................................362V-AA-2 - Les erreurs d'excution................................................................................................................. 363V-AA-3 - Les erreurs de logique.................................................................................................................. 368V-AA-4 - Les Tests........................................................................................................................................369

    V-AB - Travailler sur les dates, les heures, sur le temps..................................................................................369V-AB-1 - Dfinir une date, une heure.......................................................................................................... 370V-AB-2 - Afficher une date, une heure.........................................................................................................371V-AB-3 - Variable "temps".............................................................................................................................372V-AB-4 - Add, Substrat................................................................................................................................. 372V-AB-5 - AddDay, AddMouths, AddHours, AddSeconds, AddMiliseconds...................................................373V-AB-6 - Year, Mouth, Day, Hour, Minute, Seconde, Millisecond.................................................................373V-AB-7 - DayOfWeek, DayOfYear, DayInMonth...........................................................................................373V-AB-8 - Now, ToDay, TimeOfDay................................................................................................................373V-AB-9 - Ticks...............................................................................................................................................373V-AB-10 - Anne bissextile, jours friers..................................................................................................... 374V-AB-11 - Comparaison de DateTime.......................................................................................................... 374V-AB-12 - Calcul de la diffrence entre deux dates.....................................................................................374V-AB-13 - Comment saisir rapidement une date dans un programme ?..................................................... 375V-AB-14 - Fuseau horaire.............................................................................................................................375V-AB-15 - Les Timers................................................................................................................................... 377V-AB-16 - Perdre du temps..........................................................................................................................378V-AB-17 - Chronomtrer............................................................................................................................... 379V-AB-18 - Exemple: Horloge numrique...................................................................................................... 379

    V-AC - Lire et crire dans les fichiers (squentiels ou alatoires).................................................................... 379V-AC-1 - Gnralits et rappels................................................................................................................... 380

  • Cours VB.NET par Philippe Lasserre

    - 8 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    V-AC-2 - Classe FileInfo et File, Stream du Framework..............................................................................381V-AC-3 - Classe My.Computer.FileSystem...................................................................................................384V-AC-4 - Utiliser les "Stream" du Framework.............................................................................................. 385V-AC-5 - Utiliser "FileOpen" du VisualBasic.................................................................................................387

    V-AC-5-a - Fichier squentiel en VB.......................................................................................................390V-AC-5-b - Fichier accs alatoire en VB........................................................................................... 391V-AC-5-c - Fichier binaire en VB............................................................................................................ 393

    V-AC-6 - Utilisation du Contrle RichTextBox.............................................................................................. 393V-AC-7 - Lire ou crire des octets ou du XML.............................................................................................394V-AC-8 - Bote de dialogue pour choix de fichier........................................................................................ 394V-AC-9 - Stream et fichier alatoire avec structure..................................................................................... 395

    V-AD - Travailler sur les rpertoires et fichiers..................................................................................................401V-AD-1 - Classe DirectoryInfo et la Classe Directory du Framework...........................................................401V-AD-2 - Classe Path................................................................................................................................... 405V-AD-3 - Classe DriveInfo............................................................................................................................ 406V-AD-4 - Classe Environment.......................................................................................................................406V-AD-5 - Classe My.Computer.FileSystem en VS 2005...............................................................................407V-AD-6 - Les mthodes de l'espace Visual Basic........................................................................................408V-AD-7 - Bote de dialogue 'Choix de rpertoire' en VB2005...................................................................... 410V-AD-8 - Parcours de rpertoires et de sous rpertoires.............................................................................411V-AD-9 - Fichiers et rpertoires avec Linq...................................................................................................412

    V-AE - Afficher correctement du texte............................................................................................................... 412V-AE-1 - Remarque sur la mise jour de l'affichage...................................................................................412V-AE-2 - Afficher du texte.............................................................................................................................413

    V-AE-2-a - ToString................................................................................................................................. 413V-AE-2-b - Str() de Microsoft.VisualBasic est toujours accept..............................................................416V-AE-2-c - String.Format du Framework.................................................................................................416

    V-AE-3 - CultureInfo......................................................................................................................................417V-AF - Mthode d'extension, Lambda expression.............................................................................................418V-AG - L'espace de nom 'My'............................................................................................................................ 420

    V-AG-1 - My.Application................................................................................................................................420V-AG-2 - My.Computer................................................................................................................................. 421V-AG-3 - My.User..........................................................................................................................................424V-AG-4 - My.Ressources.............................................................................................................................. 424V-AG-5 - My.Setting...................................................................................................................................... 425V-AG-6 - My.Forms....................................................................................................................................... 425

    V-AH - Son, musique, batteries......................................................................................................................... 425VI - Classes............................................................................................................................................................. 427

    VI-A - Espace de noms, Classes, Objet............................................................................................................427VI-A-1 - Classes............................................................................................................................................427VI-A-2 - Essayons de comprendre............................................................................................................... 427VI-A-3 - Dtails en VB 2003.........................................................................................................................428

    VI-A-3-a - Les Rfrences...................................................................................................................... 428VI-A-3-b - Importation d'espace de noms............................................................................................... 429

    VI-A-4 - Dtails en VB 2005 2008 2010...................................................................................................... 430VI-A-4-a - Les Rfrences...................................................................................................................... 430VI-A-4-b - Importation d'espace de noms............................................................................................... 431VI-A-4-c - Porte de l'espace de noms...................................................................................................432VI-A-4-d - Proprit ambigu.................................................................................................................. 432VI-A-4-e - Alias........................................................................................................................................ 433VI-A-4-f - Hritage................................................................................................................................... 433VI-A-4-g - Membre d'instance et membre partag..................................................................................434VI-A-4-h - Classes statiques ou non....................................................................................................... 434

    VI-B - Les diffrentes Classes, le Framework................................................................................................... 435VI-B-1 - Les diffrentes 'Classes'................................................................................................................. 435

    VI-B-1-a - Les classes du Framework fournies par Microsoft avec VB.................................................. 435VI-B-1-b - Les classes fournies par des tiers......................................................................................... 436VI-B-1-c - Les Classes crites par le programmeur............................................................................... 436

  • Cours VB.NET par Philippe Lasserre

    - 9 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    VI-B-2 - Dans Visual Basic.Net.................................................................................................................... 436VI-B-3 - Lors de la cration d'un nouveau projet......................................................................................... 437VI-B-4 - Framework 1, 2, 3, 3.5, 4............................................................................................................... 438

    VI-C - Le CLR.................................................................................................................................................... 440VI-D - Procdures vnement, surcharge de mthode..................................................................................... 440

    VI-D-1 - vnement et procdure vnement..............................................................................................440VI-D-2 - Diffrentes mthodes pour grer les vnements..........................................................................441VI-D-3 - Surcharge de Mthode................................................................................................................... 442

    VI-E - L'criture 'Compact'................................................................................................................................. 443VI-F - Notion de flux ou 'Stream'....................................................................................................................... 445

    VII - Exemples de code, Exercices......................................................................................................................... 447VII-A - Petites routines sur les chanes de caractres...................................................................................... 447

    VII-A-1 - Une string 'Nom' contient un nom, mettre si ncessaire la premire lettre en majuscule.............. 447VII-A-2 - Comment voir si un caractre est une voyelle.............................................................................. 447VII-A-3 - Comment liminer une combinaison bien prcise de caractres en dbut de chane................... 447VII-A-4 - Vous avez une chane de caractres : comment afficher le premier caractre, puis les 2 premiers,puis 3... ?.......................................................................................................................................................448VII-A-5 - Vous avez deux chanes de caractres : comment savoir si la seconde est un anagramme de lapremire ?......................................................................................................................................................449VII-A-6 - Compter combien de fois un mot apparat dans un texte..............................................................449

    VII-B - Petits programmes de mathmatiques...................................................................................................450VII-B-1 - Calcul de l'hypotnuse d'un triangle rectangle.............................................................................. 450VII-B-2 - Somme de N entiers......................................................................................................................450VII-B-3 - Afficher les tables de multiplications..............................................................................................451VII-B-4 - Trouver la valeur la plus leve d'un tableau d'entiers..................................................................452VII-B-5 - Factorielle....................................................................................................................................... 452VII-B-6 - Factorielle avec 'Rcursivit'..........................................................................................................453VII-B-7 - Un nombre est-il premier ?............................................................................................................ 453VII-B-8 - Dcomposition en nombre premier................................................................................................455VII-B-9 - Diviseurs d'un nombre................................................................................................................... 456

    VII-C - Travail sur les tableaux et collections (tri, recherche, insertion, effacement d'lments)....................... 456VII-C-1 - Utiliser les Tableaux.......................................................................................................................456

    VII-C-1-a - Trier un tableau..................................................................................................................... 456VII-C-1-b - Rechercher un lment dans un tableau..............................................................................458VII-C-1-c - Effacer, insrer un lment dans un tableau........................................................................ 460

    VII-C-2 - Utiliser les Collections....................................................................................................................462VII-C-2-a - Trier une collection................................................................................................................462VII-C-2-b - Rechercher un lment dans une collection.........................................................................463VII-C-2-c - Effacer, insrer un lment dans une collection................................................................... 463

    VII-C-3 - Diffrences tableau/collection........................................................................................................ 463VII-C-4 - Utilisation particulire des tableaux............................................................................................... 464

    VII-D - Calculs financiers simples...................................................................................................................... 467VII-D-1 - Conversion Francs=>Euros........................................................................................................... 467VII-D-2 - Cot d'augmentation de la vie.......................................................................................................467VII-D-3 - Remboursement d'un prt............................................................................................................. 468

    VII-E - Contrle des connaissances.................................................................................................................. 468VII-E-1 - Exercices sur les variables............................................................................................................ 469VII-E-2 - Exercices sur les Strings et Char.................................................................................................. 471VII-E-3 - Exercices sur les nombres.............................................................................................................473VII-E-4 - Exercices nombres-String.............................................................................................................. 474VII-E-5 - Exercices sur les boucles.............................................................................................................. 476VII-E-6 - Exercice sur les structures et tableaux..........................................................................................479VII-E-7 - Exercice sur les collections............................................................................................................481VII-E-8 - Exercices sur les fonctions et paramtres.....................................................................................483

    VIII - Interfaces utilisateur........................................................................................................................................485VIII-A - Diffrentes interfaces utilisateur: Console, Windows Forms, WPF........................................................485VIII-B - Interface utilisateur Windows Forms et 'Control'................................................................................... 486

    VIII-B-1 - En pratique, comment crer l'interface utilisateur ?......................................................................487

  • Cours VB.NET par Philippe Lasserre

    - 10 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    VIII-B-2 - La Classe 'Control'........................................................................................................................ 489VIII-B-3 - vnements lis aux objets avec reprsentation visuelle............................................................ 493VIII-B-4 - En rsum.....................................................................................................................................495

    VIII-C - Les fentres ou 'Formulaires'................................................................................................................ 495VIII-C-1 - Crer une fentre en mode conception........................................................................................495VIII-C-2 - Proprits...................................................................................................................................... 496VIII-C-3 - Ouvrir un formulaire...................................................................................................................... 501VIII-C-4 - Fermer un formulaire.................................................................................................................... 501VIII-C-5 - vnements.................................................................................................................................. 502VIII-C-6 - Mthodes.......................................................................................................................................504VIII-C-7 - Form et code gnr par vb.........................................................................................................504VIII-C-8 - Formulaire d'avant plan, Barre de tache...................................................................................... 505VIII-C-9 - Formulaire non rectangulaire........................................................................................................506

    VIII-D - Les 'Boutons'......................................................................................................................................... 506VIII-D-1 - Crer un bouton............................................................................................................................507VIII-D-2 - Modifier ses proprits................................................................................................................. 507VIII-D-3 - Utiliser les vnements.................................................................................................................509VIII-D-4 - Crer un bouton Ok ou Cancel.................................................................................................... 510VIII-D-5 - Couleur transparente dans les images des boutons.................................................................... 510VIII-D-6 - Utilisation avance : Crer de magnifiques boutons partir de VB2005..................................... 511VIII-D-7 - Utilisation avance : Cration d'un bouton par code.................................................................... 512

    VIII-E - Les 'TextBox'..........................................................................................................................................512VIII-E-1 - Les contrles TextBox...................................................................................................................513

    VIII-E-1-a - Proprits..............................................................................................................................513VIII-E-1-b - Validation de saisie...............................................................................................................517

    VIII-E-2 - Le contrle RichTextBox............................................................................................................... 522VIII-E-3 - Le contrle MaskedTextBox (VB Framework 2)........................................................................... 525

    VIII-F - Les 'Labels'............................................................................................................................................ 526VIII-F-1 - Les labels...................................................................................................................................... 527VIII-F-2 - Les LinkLabel................................................................................................................................ 528

    VIII-G - Les cases cocher...............................................................................................................................529VIII-H - Les 'Listes'............................................................................................................................................. 531

    VIII-H-1 - Les 'ListBox'.................................................................................................................................. 531VIII-H-1-a - Pour ajouter ou supprimer des lments dans un contrle ListBox.....................................532VIII-H-1-b - Vider la ListBox.................................................................................................................... 532VIII-H-1-c - Ajouter un ou des lments................................................................................................. 532VIII-H-1-d - Charger dans une ListBox1 les nombres de 1 100.......................................................... 532VIII-H-1-e - Comment enlever des lments ?....................................................................................... 533VIII-H-1-f - Comment lire l'lment 3 ?................................................................................................... 533VIII-H-1-g - Comment rechercher l'lment qui contient une chane de caractres ?............................ 533VIII-H-1-h - Comment slectionner un lment par code ?.................................................................... 533VIII-H-1-i - L'utilisateur double-clique sur l'un des lments, comment rcuprer son numro ?............533VIII-H-1-j - Et la multi slection, quels lments ont t slectionns ?................................................. 534VIII-H-1-k - On peut 'charger' une ListBox automatiquement avec un tableau en utilisantDatasource............................................................................................................................................... 534VIII-H-1-l - Comment 'charger' une ListBox automatiquement partir d'un fichier texte.........................534VIII-H-1-m - Comment connatre l'index de l'lment que l'on vient d'ajouter (et le slectionner) ?........535VIII-H-1-n - Comment affecter chaque lment de la liste un numro, une cl ?................................ 535VIII-H-1-o - Comment, partir des coordonnes de la souris, connatre l'lment de la liste qui estsurvol ?...................................................................................................................................................537VIII-H-1-p - Trier les items de la ListBox................................................................................................ 537VIII-H-1-q - Modifier l'affichage des Items dans une ListBox..................................................................537

    VIII-H-2 - Les CheckedListBox..................................................................................................................... 538VIII-H-3 - Les ComboBox............................................................................................................................. 539VIII-H-4 - Le Contrle ListView.....................................................................................................................540

    VIII-H-4-a - ListView dtails.....................................................................................................................541VIII-H-4-b - Liste d'icnes........................................................................................................................544

    VIII-H-5 - Le Contrle DomainUpDown........................................................................................................ 546

  • Cours VB.NET par Philippe Lasserre

    - 11 -Les sources prsentes sur cette pages sont libres de droits, et vous pouvez les utiliser votre convenance. Par contre la page de prsentationde ces sources constitue une oeuvre intellectuelle protge par les droits d'auteurs. Copyright - . Aucune reproduction, mme partielle, ne peuttre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourezselon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts.

    http://plasserre.developpez.com/cours/vb-net/

    VIII-H-6 - Le Contrle TreeView................................................................................................................... 546VIII-H-7 - Annexe : Afficher des images dans un ListView.......................................................................... 550

    VIII-I - Fentres toutes prtes (MessageBox...).................................................................................................551VIII-I-1 - MessageBox du Framework...........................................................................................................551VIII-I-2 - MsgBox du Visual Basic.................................................................................................................554VIII-I-3 - InputBox..........................................................................................................................................556VIII-I-4 - OpenFileDialog............................................................................................................................... 557VIII-I-5 - SaveFileDialog................................................................................................................................558VIII-I-6 - FolderBrowserDialog...................................................................................................................... 559VIII-I-7 - FontDialog.......................................................................................................................................559VIII-I-8 - ColorDialog..................................................................................................................................... 560VIII-I-9 - Crer une boite 'de dialogue' ou 'A propos de'..............................................................................561

    VIII-J - Regroupement de contrles 'Groupe de contrles'................................................................................562VIII-J-1 - GroupBox et Panel........................................................................................................................ 562VIII-J-2 - PictureBox......................................................................................................................................563VIII-J-3 - TabControl......................................................................................................................................563VIII-J-4 - SplitContainer.................................................................................................................................564VIII-J-5 - LayoutPanel................................................................................................................................... 564VIII-J-6 - Comment remplacer les groupes de contrles de VB6 qui n'existent plus en VB.Net?.................565

    VIII-J-6-a - vnement commun............................................................................................................. 565VIII-J-6-b - Comment travailler sur plusieurs contrles ?........................................................................566

    VIII-K - Dimensions, position des contrles.......................................................................................................568VIII-K-1 - Unit de mesure............................................................................................................................568VIII-K-2 - Position initiale dans l'cran d'un formulaire.................................................................................570VIII-K-3 - Taille et position d'un formulaire ou d'un contrle.........................................................................570VIII-K-4 - Redimensionnement de fentre par l'utilisateur............................................................................571VIII-K-5 - Dplacement................................................................................................................................. 573VIII-K-6 - Coordonnes souris...................................................................................................................... 573VIII-K-7 - Anchor........................................................................................................................................... 574VIII-K-8 - Dock.............................................................................................................................................. 574VIII-K-9 - Spliter............................................................................................................................................ 575

    VIII-L - Main Menu, ContextMenu......................................................................................................................575VIII-L-1 - MainMenu en Vb 2003..................................................................................................................575VIII-L-2 - Menu Contextuel Vb 2003.............................................................................................................576VIII-L-3 - MenuStrip de Vb 2005.................................................................................................................. 576VIII-L-4 - ContextMenuStrip de Vb 2005...................................................................................................... 577

    VIII-M - Avoir le Focus....................................................................................................................................... 577VIII-M-1 - Comment donner le focus une fentre ?.................................................................................. 577VIII-M-2 - Comment donner le focus un contrle ?...................................................................................578VIII-M-3 - Prise ou perte du focus................................................................................................................578VIII-M-4 - La touche TAB pour passer d'un contrle l'autre...................................................................... 580VIII-M-5 - Raccourcis clavier.............................................................................................................