2. PLAN DU COURS
• Les bases de VB
• Les structures conditionnelles
• Les structures itératives
• Les structures de données complexes
(structures, tableau, collection)
• Les procedures et les fonction
• La programmation évènementielle avec VB
• Les objets de bases
• Reactions aux évènements
3. LANGAGES DE PROGRAMMATION
• Génération I: Les langages de première
génération s'adressaient aux ordinateurs en
langage binaire (des 0 et des 1).
• Génération II: le langage assembleur, s'adresse
au microprocesseur instruction par instruction.
• Génération III: introduit une syntaxe et des mots
réservés, ce sont les langages procéduraux
(COBOL, Fortran, BASIC, Pascal, langage
C, RPG) ou encore à objets
(Java, C++, Eiffel, Python).
• Génération IV: associée à des bases de
données, se situe un niveau au-dessus, en
intégrant la gestion de l'interface utilisateur et en
proposant un langage moins technique, plus
proche de la syntaxe naturelle.
4. LANGAGES DE PROGRAMMATION
• Tendances:
o Les langages de programmation Internel
o Les langages basé sur XML (markup)
5. HISTORIQUE DU LANGAGE VISUAL
BASIC
• Le BASIC (Beginner's All-purpose Symbolic
Instruction Code, 1963)
• Principes de concept:
o facile d'utilisation pour les débutants
o un langage généraliste (All-purpose) ;
o autoriser l'ajout de fonctionnalités pour les
o interactif ;
o fournir des messages d'erreur clairs et conviviaux ;
o avoir un délai de réaction faible pour les petits
programmes ;
o Indépendant du matériel
o isoler l'utilisateur du système d'exploitation.
6. VISUAL BASIC
• Le VB est directement dérivé du BASIC et
permet le développement rapide
d'applications, la création d'interfaces
utilisateur graphiques, l'accès aux bases de
données, ainsi que la création de contrôles
ou d'objets ActiveX.
• VB est un langage de haut niveau
7. FRAMEWORK
• Un framework (dans notre cas, le framework
.NET de Microsoft) est une sorte d'immense
bibliothèque informatique contenant des outils
qui vont faciliter la vie du développeur
• Evolution:
o Version 2.0 en 2005
o Version 3.5 en 2007
o Version 4 en 2010
• Visual studio et framework
o VS 2003 (Framework 1.1), VS 2005
(Framework 2.0), VS 2008 (Framework 3.5)
et VS 2010 (Framework 4.0).
8. PREMIER PROGRAMME
• Créer un nouveau projet (application console)
Voici le code que nous devons obtenir
Module Module1
Sub Main()
End Sub
End Module
• Chaque section ce termine par END (end sub,
end module)
• la première chose que ce dernier va faire sera
de localiser et de sauter dans la partie
appelée « Main »
9. PREMIER PROGRAMME (EXÉCUTION)
• Exécution très rapide
• Affichons un message
Console.Write("Hello World !")
• Attendons un évènement
Console.Read() Apres l exécution de ce programme, on va avoir un
message affiché sur la console. L’application va ensuite attendre une
action de l’utilisateur pour se terminer
10. PROCÉDURE, OBJETS ET FONCTIONS
• Main(): fonction principale qui sera appelée lors
de l’exécution
• console: objet offrant un ensemble de fonctions
relié à l’affichage, la lecture, le BEEP , ……
• Fonction: ce sont les comportement que offre
un objet (la méthode write par exemple permet
d afficher sur la console).
• Une procédure/fonction peut prendre plusieurs
arguments
11. VARIABLES
• Dim MaVariable As type
• Les types disponibles:
o Boolean
o Integer
o Double
o String
o Date Stocke une date et son heure sous la
forme « 12/06/2009 11:10:20 ».
13. LES CONSTANTES
• Une constance est un objet dont la valeur
ne change pas au cours de l’exécution
Déclaration:
Const NomConstante As Type = Valeur
Const LONGUEURTABLEAU As Integer = 9
14. STRUCTURES
Une structure est utilisée comme conteneur pour un petit
jeu de variables.
Permet de regrouper des données de type différent:
EXEMPLE:
Public Structure Adresse
Dim Numero As Integer
Dim Rue As String
Dim Ville As String
End Structure
Puis dans une procédure il faut déclarer la variable :
Dim MonAdresse As Adresse
15. UTILISATION
La variable MonAdresse contient
un numéro qui est dans 'MonAdresse.Numero'
un nom de rue qui est dans 'MonAdresse.Rue'
un nom de ville qui est dans 'MonAdresse.Ville
MonAdresse.Numero=2
MonAdresse.Rue= "Grande rue"
MonAdresse.Ville= "Lyon"
16. UTILISATION
Mot clé With pour ne pas avoir à répéter le nom de la
variable
With MonAdresse
.Rue= "Grande rue"
.Ville= "Lyon"
End With
Structures et tableaux
Dim Adresses(99) as Adresse
'Permet de travailler sur un tableau de 100 adresses
Adresses(33).Rue="Place de la mairie"
17. LA FONCTION WRITE
• Write: affiche sans retour à la ligne
• Writeline : affiche avec retour à la ligne
• & : concaténer deux chaines
18. EXEMPLE: QUE FAIT CE PROGRAMME
Module Module1
Sub Main()
'Initialisation des variables
Dim MaVariable As Integer = 0
Dim MaVariable2 As Integer = 0
Console.WriteLine("- Multiplication de deux nombres -")
'Demande du premier nombre stocké dans MaVariable
Console.WriteLine("Veuillez entrer le premier nombre")
MaVariable = Console.ReadLine()
'Demande du second nombre stocké dans MaVariable2
Console.WriteLine("Veuillez entrer le second nombre")
MaVariable2 = Console.ReadLine()
'Affiche "X x Y = " puis le résultat (multiplication
de MaVariable par MaVariable2)
Console.WriteLine(MaVariable & " x " & MaVariable2 & " = " &
MaVariable * MaVariable2)
'Crée une pause factice de la console
Console.ReadLine()
End Sub
End Module
19. STRUCTURE CONDITIONNELLE
• If - end if : structure classique
• If – else – end if
• If –elseif – else - end if
20. LA STRUCTURE SELECT
Select Case MaVariable
Case 1
'Si MaVariable = 1
Case 2
'Si MaVariable = 2 Case
Else 'Si MaVariable <> 1 et <> 2
End Select
23. LA BOUCLE FOR
For x As Integer = 0 to 10 step 2
'Instruction à exécuter 5 fois
Next
24. TABLEAUX
• 1 dimension
o Dim MonTableau(4) As Integer
• 2 dimensions
o Dim MonTableau(3,4) As Integer
• 3 dimensions
o Dim MonTableau(2,3,4) As Integer
TAILLE D’UN TABLEAU
Le nombre de cases d'un tableau est toujours « indice + 1 ».
Réciproquement, l'index de sa dernière case est « taille - 1 ».
25. LES TABLEAUX DANS LES STRUCTURES
En Visual Basic .NET il y a 2 méthodes pour utiliser un tableau
dans une structure:
1-Méthode par initialize
Une structure peut comporter une méthode 'Initialize' qui sera
exécutée quand on déclare une variable de type structure.
Public Structure DriveInfo
Dim DriveNumber() As Short
'Noter que le nombre d'élément a disparu.
Dim DriveType As String
'maintenant on instance les 25 éléments.
Public Sub Initialize()
ReDim DriveNumber(25)
End Sub
End Structure
26. LES TABLEAUX DANS LES STRUCTURES
2. Après la déclaration de la variable, on 'Redimensionne'
le tableau.
Public Structure DriveInfo
Dim DriveNumber() As Short
Dim DriveType As String
End Structure
Function AddDrive(ByRef Number As ShorByRef
DriveLabel As String) As Object
Dim Drives As DriveInfo
Redim Drives.DriveNumber(25)
Drives.DriveNumber(3)=12
Drives.DriveType = "Fixed"
End Function
27. OPÉRATIONS SUR LES TABLEAUX:
AFFICHAGE
'afficher les éléments un par un
for i=0 to N
console.write(t(i))
Next
28. RECHERCHE DANS UN TABLEAU
Pour une liste non triée, on n'a pas d'autres choix que de comparer la
string cherchée à chaque élément du tableau, on utilisera donc une boucle:
N=4 'tableau de 5 éléments.
Dim T(N) As String 'élément de 0 à 4
T(0)="vert"
T(1)="bleu"
T(2)="rouge"
T(3)="jaune"
T(4)="blanc"
Dim i As Integer 'Variable de boucle
Dim AChercher As String= "rouge" 'String à chercher
For i=0 To N
If T(i)=AChercher then
Exit For
End if
Next i
29. OPÉRATIONS SUR LES TABLEAUX: SUPPRIMER
si on veut supprimer l'élément d'indice x, on doit copier les élements d'indices
i+1 dans l'element d'indice i pour tout i>=x
Dim N As Integer
Dim T(N) As String
'création d'un tableau de String.
Dim i As Integer
For i= x To N-1
T(i)=T(i+1)
Next i
T(N-1)=""
'ne pas oublier de modifier le dernier élément
30. OPÉRATIONS SUR LES TABLEAUX : INSÉRER UN
ÉLEMENT
pour insérer un element à l'indice x, on doit decaler toutes
les cases à partir de x d'une unité et insérer l'élément voulu à l'endroit x
Dim N As Integer
Dim T(N) As String
'création d'un tableau de String.
Dim i As Integer
For i= N-1 To x+1 Step -1
T(i)=T(i-1)
Next i
T(x)="LFSI"
'ne pas oublier d'ajouter
31. OPÉRATIONS SUR LES TABLEAUX: RECHERCHE
D'UN ÉLÉMENT
Pour une liste non triée, on n'a pas d'autres choix que de comparer la
string cherchée à chaque élément du tableau, on utilisera donc une
boucle:
N=4 'tableau de 5 éléments.
Dim T(N) As String 'élément de 0 à 4
T(0)="vert"
T(1)="bleu"
T(2)="rouge"
T(3)="jaune"
T(4)="blanc"
Dim i As Integer 'Variable de boucle
Dim AChercher As String= "rouge" 'String à chercher
For i=0 To N
If T(i)=AChercher then
Exit For
End if
Next i
32. LES COLLECTIONS
Les Collections permettent de regrouper des données. Les collections sont
très utilisées dans la programmation 'Objet'.
Une collection fonctionne plutôt comme un groupe d'éléments dans laquelle il est
possible d'ajouter ou d'enlever un élément à n'importe quel endroit sans avoir à
se préoccuper de la taille de la collection, ni ou se trouve l'élément.
Le nombre d'élément n'est pas défini au départ comme dans un tableau. Dans
une collection, il n'y a aucun élément au départ, puis il n'y a que les éléments que
l'on a ajouté.
Les éléments sont repérés grâce à un index ou avec une Clé unique
Les items affichés dans une ListBox donnent une idée concrète de ce qu'est une
collection.
Types de collections:
• Les Listes:ArrayList, List(Of..) VB 2005
• ...........................................
33. COLLECTION DE TYPE ARRAY LIST
C'est une 'Liste' d'objets, d'Item:
La ArrayList est une collection particulière: On peut y mettre des objets :
chaînes, nombres... rien n'empêche que le premier élément soit un entier,
le second une chaîne … .
Il n'y a pas de clé.
Dim L As New ArrayList()
'On crée une collection ArrayList
Dim L As ArrayList = ArrayList.Repeat("A", 5)
'On crée une ArrayList de 5 éléments contenant chacun "A" (on répète "A")
L.Add("Bonjour")
'On ajoute un élément à la collection
34. ARRAYLIST : QUELQUES OPÉRATIONS
L.Remove("Bonjour")
'On enlève l'élément de la liste qui contient "Bonjour"
L.RemoveAt(0)
'On enlève l'élément 0 de la liste
L.Sort()
'Trie la collection
L.Clear()
'Efface tous les éléments
L.Contains (élément)
' Retourne True si la liste contient élément.
35. ARRAYLIST: QUELQUES OPÉRATION
Insert permet d'insérer à un index spécifié:
L.Insert( position, Ainserrer)recherche
L.Containts (élément) ' Retourne True si la liste contient 'élément'.
Recherche d'un élément dans une collection NON TRIEE avec IndexOf:
Dim l As New ArrayList
Dim i As Integer
l.Add("toto")
l.Add("lulu")
i = l.IndexOf("lulu")
MsgBox(i.ToString)
'Affiche 1 qui est l'index de "lulu"
36. FONCTION ET PROCÉDURE
• Une procédure est un ensemble d'instructions qui effectue
une fonction précise.
• En Visual Basic.NET, il existe deux sortes de procédures :
les 'sub' et les 'function' .
o Les 'sub' commencent par le mot clé 'sub' puis finissent par 'end sub'
et ne retournent aucune valeur
o Les fonctions qui débutent par 'function' puis finissent par 'end
function' et qui retournent une valeur précise.
37. LES FONCTIONS
• Syntaxe
Function NOMF(ByVal Valeur1 As Integer, ByVal Valeur2 As Integer)
As Integer
Instructions ……
Return Resultat
End Function
38. ARGUMENTS D'UNE FONCTION
Passage par valeur (ByVal)
La procédure utilise alors une copie de la variable. La
valeur de la variable ne peut pas être modifiée par la
procédure.
Passage par référence (ByRef)
L'adresse de la variable qui est passée à la procédure et
peut donc être modifiée par la procédure.
42. CRÉER UN PROJET
• Créer nouveau projet
• Choisir « application windows forms »
• Le contrôle de base « form »
• Le contrôle de base en Visual Basic est la
feuille, ou formulaire, en anglais, Form.
• Deux proriétés basiques:
• Name: nom de l’objet tel qu’il est géré par
l’application
• Caption: texte associé à l’objet sur l’écran
43. AUTRES PROPRIÉTÉS
• Modal : propriété qui gère le caractère
« impératif » ou non de toute Form (on peut
cliquer ou non en dehors de la form, sur
une autre Form)
• Style : propriété qui gère la tête générale de
la Form (présence ou non du menu
système, tête des bordures, etc.)
• Visible : propriété booléenne qui gère,
comme son nom l’indique, le caractère
visible ou non de la Form (et partant, des
autres contrôles qu’elle contient)
44. FORM (PROPRIÉTÉS)
• BackColor: Définis l'arrière plan du contrôle
• Text: Le titre de la form
• Name: Le nom du contrôle utilisé dans le
codage
• Enabled: Indique si le contrôle est activé ou
pas
45. UN LABEL
• Un Label est un contrôle "inerte", qui sert à
afficher un texte sur une Form.
o Name : Nom de l’objet
o Caption : évidemment
o Alignment : qui règle l’alignement du texte
(gauche, centré, droite)
o BorderStyle : qui désigne le type de bordure
46. UN TEXTBOX (ZONE DE TEXTE)
• Ces zones (de la classe "TextBox" pour VB)
peuvent servir à saisir une information.
• toute information contenue dans une zone
de texte est obligatoirement de type texte !
• Propriétés :
o Text: C’est la propriété qui désigne son contenu.
o Multiline : autorise ou non l’écriture sur plusieurs lignes
o Scrollbars : fait figurer dans la TextBox une barre de
défilement horizontale ou verticale (ou les deux)
o PasswordChar : crypte le texte entré par le caractère
stipulé (généralement, on choisit le caractère *)
o MaxLength : limite le nombre de caractères qu’il est
possible de saisir dans la zone de texte.
47. PROCÉDURES ÉVÉNEMENTIELLES
• A chaque objet créé peuvent correspondre
autant de procédures que d’événements
possibles survenant sur cet objet
• Double click : la procédure gérant
l’événement le plus courant pour l’objet
considéré vient d’être créée
• CODE CREE ->
• Private Sub NomObjet_Evenement()…End
Sub
48. PROCÉDURES ÉVÉNEMENTIELLES
• Private signifie que la procédure n’est
utilisable que pour la Form considérée (et
pas pour d’autres objets situés sur d’autres
Form). On peut aussi créer des procédures
Public
• End Sub marque la fin de la procédure en
question (mais pas la fin de l’application).
49. ACCÉDER AUX OBJETS
• Pour accéder aux informations (données)
dans le formulaire, on utilise la syntaxe
suivante
• Nomobjet.propriété
• Exemple
Somme.text=5
50. LES CHECKBOX
• Les " cases à cocher " (CheckBox): Elles sont
carrées, et indépendantes les unes des autres,
si l'utilisateur coche une case , cela n'a pas
d'influence sur les autres cases du formulaire,
qu'elles soient regroupées dans un cadre pour
faire plus joli ou non
o Checked: Indique si la case est cochée
o CheckState: Indique l'état de la case à cocher
51. LES BOUTONS RADIOS
• Les " boutons radio " (RadioButton): Ils sont
ronds et font toujours partie d'un groupe (Ils
sont dans une fenêtre ou dessinés dans un
objet GroupBox ). Ce groupe est indispensable,
car au sein d'un groupe de RadioButton, un seul
bouton peut être coché à la fois : si l'utilisateur
en coche un, les autres se décochent
52. LE BOUTON
• Le bouton est le composant le plus
important puisque c'est grâce à lui que
l'utilisateur pourra interagir avec le
programme. Un bouton permet
essentiellement de valider ou d'annuler une
fonction.
o Text: Le texte du bouton
o TextAlign: L'alignement du texte du bouton
o Enabled Indique si le contrôle est activé ou pas
o Visible Indique si le contrôle est visible ou pas
o Name Le nom du contrôle utilisé dans le
codage
o Size La taille du contrôle en pixels
53. LA COMBOBOX
• Les ComboBox sont des menus déroulants.
Elles permettent de choisir une option parmi
plusieurs
o Sorted: Indique comment sont triés les
éléments de la liste
o Items: Permet d'ajouter les éléments dans la
liste déroulante
54. LISTBOX
• Le contrôle ListBox affiche une liste d'éléments
(d'objets) dans laquelle l'utilisateur peut faire un
ou plusieurs choix.
• Exemple de codes
• Vider la ListBox
• ListBox1.Items.Clear()
• Ajouter un ou des éléments
• ListBox1.Items.Add(" quelquechose")
• Ajouter un tableau
o Dim t() As String {"Franc", "Norgege", " Thaïlande" }
o Me.ListBox1.Items.AddRange(t)
55. LA LISTVIEW
• Il permet d'ajouter en ligne des éléments.
o Sorted: Indique comment sont triés les éléments
de la liste
o Items: Permet d'ajouter les éléments dans la
ListBox
o Multicolumn: indique si les elements peuvent etre
mis en plusieurs colonnes ou pas
56. LA TREEVIEW
• représente une arborescence avec
plusieurs niveaux de nœuds. Dans une
TreeView, il y a un nœud racine, suivit de
nœuds puis de sous nœuds
o DrawMode: Indique si le code gère le dessin
des éléments de la liste
o FullRowSelect Indique si la surbrillance s'étend
sur la largeur du TreeView
57. LA FONCTION MESSAGEBOX
• C'est une fonction qui affiche un message dans
une boîte de dialogue, attend que l'utilisateur
clique sur un bouton (Ok ou Oui-Non..), puis
retourne si on le désire, le nom du bouton
cliqué par l'utilisateur.
• On utilise la méthode Show pour afficher la
boite.
• On doit fournir le texte à afficher, on peut aussi
fournir le titre dans la barre, le type de bouton
, le type d'icône et le bouton par défaut, une
option , la présence d'un bouton d'aide.
58. LA FONCTION MESSAGEBOX: EXEMPLE
• MessageBox.show(Texte,Titre, TypeBouton ,
Icone, BoutonParDéfaut, Option, Bouton aide)
• MessageBox.Show("bonjour", "Programme",
MessageBoxButtons.YesNo,
MessageBoxIcon.Error, _
MessageBoxDefaultButton.Button1,
MessageBoxOptions.RightAlign, True)
59. INPUTBOX
• C'est une fonction qui permet d'ouvrir une
fenêtre qui pose une question :
• Elle retourne la réponse tapée par l'utilisateur.
• Le retour est effectué dans une variable
String.
• Dim Nom As String Nom =
InputBox("Bonjour","Tapez votre nom ?")