ROYAUME DU MAROC
OFPPT
Office de la Formation Professionnelle et de la Promotion du Travail
INSTITUT SPECIALISE DE GESTION ET D’INFORMATIQUE
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
REMERCIEMENT : 3
INTRODUCTION : 3
INTERFACE [Link]: 3
TP N° 1 CREATION D’UNE INTERFACE 3
TP N° 2 LES FONCTIONS 3
TP N° 3 LES FORMULAIRES 3
TP N° 4 STRUCTURES ET TABLEAUX 3
TP N° 5 ÉNUMERATION, STRUCTURE ET COLLECTION 3
TP N° 6 LES EVENEMENTS, LES CASES A COCHER ET LES CASES OPTIONS 3
TP N° 7 L’EVENEMENT CLOSING ET REGROUPEMENT DES CONTROLES 3
TP N° 8 LISTBOX ET L’EVENEMENT ENABLED 3
TP N° 9 LA BOUCLE FOR…NEXT 3
TP N° 10 L’ÉVÉNEMENT KEYPRESS 3
TP N° 11 LISTE SÉLECTION 3
TP N° 12 ARRAYLIST, CLASSE 3
TP N° 13 TABCONTROL 3
TP N° 14 RITCHTEXTBOX,CONTEXTMENU,COLORDIALOG, FONTDIALOG 3
TP N° 15 LES FICHIERS, LES MENUS, DATAGRID 3
NOTES : 3
CONCLUSION : 3
El ANZI Page 3 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Remerciement :
Avant de commencer à présenter le contenu de ce modeste travail, je
tiens à remercier tous mes amis de classe sauf les ennemis de la connaissance,
ceux qui refusent de partager l’information pour la rendre disponible à tout le
monde afin d’obtenir une génération dite « Génération d’informatique » capable
de relever les défis de la modernisation.
Je remercie particulièrement notre cher formateur M. Mohammed
BENTALEB pour sa créativité, sa compétence et sa rigueur, et pour tous ce
qu’il a fait pour nous afin de nous mettre dans la bonne voie du développement.
Je remercie aussi tout le personnel de l’ISGI Beni Mellal et notamment
Mme NAJAT.
El ANZI Page 4 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Introduction :
Puisque les langages de programmation ont devenu un outil nécessaire
dans le développement informatique, j’ai opté la réalisation d’un petit travail qui
met en œuvre l’un des langages les plus répondus au monde, c’est le [Link] de
Microsoft inclus dans la plateforme de Visual [Link].
Le lecteur de ce petit rapport constatera que le point a été met sur le coté
pratique et non plus la théorie, la chose que le lecteur doit savoir avant de
prendre mon travail en main.
Les fonctionnalités les plus utilisables de [Link] sont presque tous
traitées avec soin afin de faciliter la compréhension et l’apprentissage.
Bonne lecture ☺
Avec mes meilleurs voeux
El ANZI Page 5 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Interface [Link]:
Boîte à outils Fenêtre des propriétés
(Non active = barre grise) Espace de travail VB Propriétés de l’objet
Sélectionné (Form2)
Explorateur de solution
Un formulaire (Form) sélectionné
De nom ‘Form1
Figure 1: Environnement de développement Visual Basic .NET
El ANZI Page 6 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
TP N° 1 Création d’une Interface
Objectifs
Dans cet exercice vous allez découvrir l’espace de travail VB [Link], et
mettre en œuvre la méthode « Cliquez et glissez ».
Travail Demandé :
1. Créer l’interface ci-dessous
Figure 2.
2. modifier les propriétés de chaque contrôle.
3. le programme doit calculer la somme de deux nombres, écrire le code
correspondant pour chaque bouton.
4. Tester votre application.
Solution :
Private Sub CmdAnnuler_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]() ‘ vider la zone de texte
[Link]()
[Link]()
[Link]() ‘ pour donner le focus a l’objet txt1
End Sub
El ANZI Page 7 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub Cmdquit_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
If MsgBox("Voulez vous vraiment quitter l'application
?",MsgBoxStyle.YesNo_ Or [Link],
"Sortir!!")=[Link] Then
End ‘ fin du programme
End If
End Sub
Private Sub CmdOk_Click(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
‘ On va vérifier d’abord si les zones de textes ne sont pas
vides.
If [Link] <> Space(0) And [Link] <> Space(0)
Then
[Link] = CInt([Link]) + CInt([Link])
End If
[Link]()
End Sub
TP N° 2 les fonctions
Objectifs
Dans ce TP vous allez être capable de manipuler les fonctions sous [Link].
Travail demandé :
1. créer l’interface suivante.
El ANZI Page 8 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 3.
2. Modifier les propriétés de chaque contrôle.
3. créer les fonctions suivantes : addition, soustraction, multiplication, division.
4. on cliquant sur le bouton calculer, on doit avoir le résultat approprié selon la case
option sélectionné.
5. programmer le bouton quitter.
6. testez votre application.
Solution :
Voici une proposition pour la création des fonctions :
‘ On va passer deux arguments pour toutes les fonctions
puisque nous avons deux nombres qui vont être manipulé.
Private Function addition(ByVal a As Integer, ByVal b As
Integer)
Return a + b
‘ Dans une fonction le mot clé “RETURN” est obligatoire.
End Function
Private Function soustraction(ByVal a As Integer, ByVal b
As Integer)
Return a - b
End Function
Private Function multiplication(ByVal a As Integer, ByVal
b As Integer)
Return a * b
End Function
Private Function division(ByVal a As Integer, ByVal b As
Integer)
If b = 0 Then
MsgBox("division par ZERO impossible!!!", _
[Link],"ZERO!!")
Else
El ANZI Page 9 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Return a / b
End If
End Function
Private Sub cmdquitter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim msg
msg = MsgBox("voulez vous vraiment quitter
l'application ? ", [Link] Or [Link],
"abdel application")
If msg = vbYes Then
End
End If
End Sub
Private Sub cmdcalculer_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] = True Then
Call addition(CInt([Link]),
CInt([Link]))
End If
If [Link] = True Then
Call soustraction(CInt([Link]),
CInt([Link]))
End If
If [Link] = True Then
Call multiplication(CInt([Link]),
CInt([Link]))
End If
If [Link] = True Then
Call division(CInt([Link]),
CInt([Link]))
End If
End Sub
Private Sub txtnum1_TextChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If ([Link] > 0) Then
If Not IsNumeric([Link]) Then
[Link]()
MsgBox("veuillez entrez un nombre",
[Link], "abdel & Aziz application")
End If
End If
End Sub
El ANZI Page 10 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub txtnum2_TextChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If ([Link] > 0) Then
If Not IsNumeric([Link]) Then
[Link]()
MsgBox("veuillez entrez un nombre",
[Link],"abdel & Aziz")
End If
End If
End Sub
TP N° 3 les Formulaires
Objectifs
Dans ce TP vous allez être capable d’instancier un formulaire.
Travail Demandé :
1. créer les interfaces suivantes.
Figure 4
Figure 5
2. Modifier les propriétés de chaque contrôle.
3. Ajouter un module, dans lequel vous aller instancier form1 et form2
successivement avec les noms a et b.
4. à la clique sur le bouton « aller au form2 », du formulaire1 form2 sera afficher et
form1 cacher.
5. à la clique sur le bouton « aller au form1 », du formulaire2 form1 sera afficher et
form2 cacher.
6. programmer les boutons quitter des deux formes pour que l’application se ferme.
7. tester votre application.
El ANZI Page 11 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Proposition de solution:
Module Module1
Public a As New Form1
Public b As New Form2
Public texte As String
Sub main()
[Link] = "Formulaire1"
[Link] = "Formulaire2"
[Link](a)
End Sub
End Module
Form1 :
Private Sub allerauform2_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
texte = [Link] ’ conserver le contenue du textbox1
dans la variable texte
[Link]() ’cacher form1
[Link]() ’afficher form2
End Sub
Private Sub quitter_Click(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
[Link]()
End Sub
Form2 :
Private Sub quitter_Click(ByVal sender As Object, ByVal e
As [Link]) Handles [Link]
[Link]()
End Sub
Private Sub allerauform1_Click(ByVal sender As Object, ByVal e
As [Link]) Handles [Link]
[Link]()
[Link]()
End Sub
Private Sub Form2_Activated(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
[Link] = texte ’affecter la valeur de la variable
texte au contrôle textbox2
End Sub
El ANZI Page 12 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
TP N° 4 Structures et Tableaux
Objectifs
Dans ce TP en va voir ensemble l’utilisation des structures et des tableaux afin
de remplir des listboxs.
Travail Demandé :
1. créer les interfaces suivantes ?
Figure 6 Figure 7
2. ajouter un module dans lequel en va créer une structure client (nom, prénom,
age) ?
3. déclarer un tableau du type client dans le même module ?
4. le click sur le bouton « ajouter » permettra de remplir le tableau
5. « Lister » affichera le deuxième formulaire.
6. « Afficher » du deuxième formulaire permettra de remplir la liste à partir du
tableau.
7. les boutons « Quitter » et « Fermer » permettent de quitter l’application.
8. Testez votre application, trop marrant ☺.
Proposition de solution
-Déclaration du module :
El ANZI Page 13 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Module Module1
’Création de la structure client:
Structure client
Dim nom As String
Dim prenom As String
Dim age As Integer
End Structure
’Déclaration d’une variable et un tableau du type client:
Public enr As client
Public tab() As client
Public nbrclients As Integer = -1
’Instanciation de form1 et form2:
Public f1 As New Form1
Public f2 As New Form2
’Sub main:
Public Sub main()
[Link](f1)
End Sub
End Module
Private Sub cmdajouter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
nbrclients += 1
ReDim Preserve tab(nbrclients)
With enr
.nom = [Link]
.prenom = [Link]
.age = CInt([Link])
End With
tab(nbrclients) = enr
effacer()
End Sub
Private Sub cmdlister_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]()
[Link]()
End Sub
Sub effacer()
[Link]()
[Link]()
[Link]()
El ANZI Page 14 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
[Link]()
End Sub
Private Sub cmdeffacer_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
effacer()
End Sub
Private Sub cmdquitter_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
Dim a = MsgBox("voulez vous vraiment quitter ?",
[Link] Or [Link], "Sortir!!!")
If a = vbYes Then
End
End If
End Sub
Public Sub Remplir(ByVal a As TextBox, ByVal b As TextBox,
ByVal c As TextBox)
If [Link] <> Space(0) And [Link] <> Space(0) And
IsNumeric([Link]) Then
[Link] = True
Else
[Link] = False
End If
End Sub
Private Sub txtnom_TextChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
Remplir(txtnom, txtprenom, txtage)
End Sub
Private Sub Form1_Load(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link] = False
End Sub
Private Sub txtprenom_TextChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
Remplir(txtnom, txtprenom, txtage)
End Sub
Private Sub txtage_TextChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
Remplir(txtnom, txtprenom, txtage)
El ANZI Page 15 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
End Sub
TP N° 5 Énumération, Structure et Collection
Objectifs
Dans ce TP, Essayant de maîtriser l’utilisation de l’énumération, structure
et collection.
Et un nouveau contrôle, datetimepicker.
Travail Demandé :
1. Créer les interfaces suivantes :
Figure 8
El ANZI Page 16 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 9
2. Dans un module créer une énumération TE (Permanant, Temporaire,
Intermitant), et une structure Employé (Nom, DateEmbauche,
DateNaissance, Fonction, TypeEmployé de type TE).
3. le combobox fonction doit être remplit à partir de l’énumération TE.
4. en cliquant sur le bouton « ajouter », les données saisies seront ajoutées
dans une collection.
5. le bouton « annuler » vide les champs.
6. le bouton « Afficher » Affiche le deuxième formulaire.
7. le bouton « Lister» Affichera les données -contenues dans la collection-
dans la liste.
8. « revenir form1 » permet le retour au form1.
9. programmer le bouton quitter à ta guise.
10. Tester votre application.
Proposition de solution:
Module Module1
Public Structure Employé
Dim NomEmployé As String
Dim DateEmbauche As Date
Dim DateNaissance As Date
Dim Fonction As String
Dim type As TE
End Structure
Public Enum TE
Permanent = 0
Temporaire = 1
Intermitant = 2
End Enum
El ANZI Page 17 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Function message() As MsgBoxResult
Return [Link]("Voulez vous vraiment
sortir???", _
"Sortir!!!!", [Link], _
[Link])
End Function
Public f2 As New Form2
Public f1 As New Form1
Public col As New Collection
Public emp As Employé
End Module
Form1:
Private Sub cmdquitter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
If message() = [Link] Then
End
End If
End Sub
Private Sub CmdAjouter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
With emp
.DateEmbauche = [Link]
.DateNaissance = [Link]
.NomEmployé = [Link]
.Fonction = [Link]
.type = [Link]
End With
[Link](emp)
vider()
End Sub
public Sub Vider()
[Link]()
[Link]()
[Link]()
[Link]()
[Link]()
End Sub
Private Sub CmdAfficher_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
El ANZI Page 18 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
[Link]()
[Link]()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
[Link]([Link])
[Link]([Link])
[Link]([Link])
[Link] = 1
End Sub
Private Sub CmdAnnuler_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Vider()
End Sub
Private Sub Form1_Closing(ByVal sender As Object, ByVal e
As [Link]) Handles
[Link]
If message() = [Link] Then
[Link] = True
End If
End Sub
Form2:
Private Sub Button1_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]()
[Link]()
End Sub
Private Sub Button2_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]()
For Each emp In col
[Link]([Link]é & ", " &
[Link] & ", " & [Link] _
& ", " & [Link] & ", " &
[Link])
Next End Sub
El ANZI Page 19 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
TP N° 6 Les événements, les Cases à cocher
et les cases options
Objectifs
Dans ce TP on va voir ensemble l’utilisation des cases options et des cases à
cocher afin de préciser quelques événements.
Travail Demandé :
1. créer l’interface suivant.
Figure 10
2. si la case à cocher « Modifier Le Couleur » est inactive, le groupbox
« couleur » doit être invisible.
3. « couleur choisie » doit prendre la couleur sélectionnée dans le groupbox.
4. sur l’événement MouseMove, « couleur choisie » deviendra blanche. Et sur
l’événement MouseLeave, prendra la couleur sélectionnée.
5. avant de quitter l’application demandera une confirmation (utiliser
l’événement closing du formulaire).
6. tester votre application.
Proposition de solution :
Dim a As [Link] = [Link]
Function sortir() As MsgBoxResult
Return [Link]("voulez vous vraiment quitter
???", "Quitter!!!", _
El ANZI Page 20 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
[Link], [Link])
End Function
Private Sub cmdquitter_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If sortir() = [Link] Then
End
End If
End Sub
Private Sub Form1_Load(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link] = False
End Sub
Private Sub chkmodifier_CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
[Link] = [Link]
If Not ([Link]) Then
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End If
a = [Link]
End Sub
Private Sub cole(ByVal sender As [Link], ByVal e As
[Link]) Handles [Link],
[Link], [Link]
If sender Is optbleu Then
a = [Link]
ElseIf sender Is optrouge Then
a = [Link]
ElseIf sender Is optvert Then
a = [Link]
End If
[Link] = a
End Sub
Private Sub lblcouleur_MouseMove(ByVal sender As Object,
ByVal e As [Link]) Handles
[Link]
[Link] = [Link]
End Sub
El ANZI Page 21 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub lblcouleur_MouseLeave(ByVal sender As Object,
ByVal e As [Link]) Handles [Link]
[Link] = a
End Sub
Private Sub Form1_Closing(ByVal sender As Object, ByVal e
As [Link]) Handles
[Link]
If sortir() = [Link] Then
[Link] = True
End If
End Sub
TP N° 7 L’événement Closing et regroupement
des contrôles
Objectifs
Dans ce TP on va voir ensemble comment une procédure répond à plusieurs
contrôles.
Travail Demandé :
1. créer l’interface ci-dessous.
El ANZI Page 22 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 11
2. créer une fonction qui calcule la remise tel que la remise est de 0% pour
une quantité de livres inférieure à 5, et 5% pour une quantité entre 5 et 10,
et 8% pour une quantité entre 10 et 20, et une remise de 10% pour une
quantité supérieure à 20.
3. programmer le bouton « RAZ » pour que les zones de texte reçoivent la
valeur 0.
4. programmer le bouton quitter à ta manière amigos.
5. tester votre application.
Proposition de solution :
Private Sub typecollection_CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link], [Link]
If sender Is h Then
sel(Qteh, h)
ElseIf sender Is s Then
sel(Qtes, s)
End If
End Sub
Private Sub sel(ByVal a As TextBox, ByVal b As CheckBox)
[Link] = [Link]
[Link] = 0
[Link]()
[Link] = 0
El ANZI Page 23 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
End Sub
Public Function calcrem(ByVal qte As Integer) As Single
Dim r As Single ’une variable dans laquelle on va calculer la
remise
If qte >= 20 Then
r = 10 / 100
ElseIf qte >= 10 Then
r = 8 / 100
ElseIf qte >= 5 Then
r = 5 / 100
Else
r = 0
End If
Return r
End Function
Private Sub Cmd_Raz_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles Cmd_Raz.Click
[Link]()
[Link]()
[Link]()
[Link]()
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = 0
[Link] = False
[Link] = False
[Link] = False
[Link] = False
End Sub
Private Sub Cmd_Calculer_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
Cmd_Calculer.Click
Dim remis As Single
Dim mnt As Single
If [Link] = True Then
[Link] = calcrem(CInt([Link]))
mnt = 100 * CInt([Link])
End If
If [Link] = True Then
[Link] = calcrem(CInt([Link]))
mnt = 120 * CInt([Link])
End If
If [Link] And [Link] Then
[Link] = calcrem(CInt([Link]) +
CInt([Link]))
El ANZI Page 24 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
mnt = 120 * CInt([Link]) + 100 *
CInt([Link])
End If
[Link] = mnt * (1 - [Link])
End Sub
Private Sub Form1_Closing(ByVal sender As Object, ByVal e
As [Link]) Handles
[Link]
Dim a = MsgBox("voulez vouz vraiment nous quitter ?",
[Link], or [Link], "Quitter..!!")
If a = vbYes Then
[Link] = False
Else : [Link] = True
End If
End Sub
Private Overloads Sub Cmd_quitter_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
Cmd_quitter.Click
Dim a = MsgBox("voulez vouz vraiment nous quitter ?",
[Link] or [Link], "Quitter..!!!")
If a = vbYes Then
End
End If
End Sub
TP N° 8 Listbox et l’événement enabled
Objectifs
Dans ce TP on va utiliser pas mal de propriétés du contrôle listbox, et la
manipulation de la propriété enabled des boutons.
Travail Demandé :
1. créer l’interface ci-dessous.
El ANZI Page 25 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 12
2. au démarrage du formulaire tous les bouton seront désactivés.
3. au clique sur le bouton « » les éléments sélectionnés dans la liste se trouve à
gauche seront déplacer dans la liste à droite et l’inverse pour le bouton « ».
4. les deux boutons « effacer » permet de supprimer les éléments sélectionnés dans la
liste située au dessus du bouton.
5. tester votre application.
Proposition de solution :
Private Sub cmdajouter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]([Link])
[Link]()
[Link]()
End Sub
Private Sub Form1_Load(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]()
End Sub
Private Sub r_Click(ByVal sender As [Link], ByVal e
As [Link]) Handles [Link]
For i As Integer = 0 To [Link] - 1
[Link](([Link]))
[Link]([Link])
Next i
[Link] = [Link]
[Link] = [Link]
End Sub
El ANZI Page 26 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub txt_TextChanged(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link] = [Link]
End Sub
Private Sub List1_SelectedIndexChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End Sub
Private Sub l_Click(ByVal sender As [Link], ByVal e
As [Link]) Handles [Link]
For i As Integer = 0 To [Link] - 1
[Link](([Link]))
[Link]([Link])
Next i
[Link] = [Link]
[Link] = [Link]
End Sub
Private Sub List2_SelectedIndexChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End Sub
Private Sub f1_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
For i As Integer = 0 To [Link] - 1
[Link]([Link])
Next i
[Link] = [Link]
[Link] = [Link]
End Sub
Private Sub f2_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
For i As Integer = 0 To [Link] - 1
[Link]([Link])
Next i
[Link] = [Link]
[Link] = [Link]
End Sub
El ANZI Page 27 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub txt_KeyPress(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
If AscW([Link]) = 13 Then
[Link]([Link])
[Link]()
[Link]()
End If
End Sub
TP N° 9 La boucle For…Next
Objectifs
Dans ce TP vous aller utiliser la boucle for afin de rechercher un caractère dans
une chaîne de texte.
Travail Demandé :
1. créer l’interface ci-dessous.
Figure 13
2. programmer le bouton quitter premièrement☺.
3. le bouton « Lancer la recherche » permet de compter le nombre de fois se
répète un caractère dans un texte.
4. tester votre application.
Une Solution
El ANZI Page 28 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub Rechercher_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim a As Integer = 0
Dim longTexte As Integer = [Link]
Try
For i As Integer = 0 To longTexte - 1
If UCase([Link](i)) =
UCase([Link](0)) Then
a = a + 1
End If
Next
[Link] = [Link]
Catch ex As Exception
MsgBox("Introduire du texte SVP!!!!",
[Link], "Erreur!")
End Try
End Sub
Private Sub cmd_Quitter_Click(ByVal sender As Object, ByVal
e As [Link]) Handles cmd_Quitter.Click
End
End Sub
TP N° 10 L’événement keypress
Objectifs
Dans ce TP vous allez utiliser l’événement keypress d’un contrôle textbox.
Travail Demandé :
1. créer l’interface ci-dessous.
El ANZI Page 29 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 14
2. l’utilisateur ne doit introduire que le type du texte sélectionné parmi les
deux boutons radio « numérique » et « alphabet ».
3. programmer le bouton « quitter » pour sortir de votre vaste application.
4. tester votre application.
Proposition de solution :
Private Sub alphabet_CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
[Link]()
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object,
ByVal e As [Link]) Handles
[Link]
If [Link] = True Then
If [Link]([Link]) Then
[Link] = True
End If
End If
If numé[Link] = True Then
If [Link]([Link]) Then
[Link] = True
End If
End If
End Sub
Private Sub numérique _CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
numé[Link]
[Link]()
End Sub
El ANZI Page 30 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub quitter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]()
End Sub
Private Sub Form1_Load(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
[Link] = False
[Link] = False
[Link] = False
End Sub
TP N° 11 Liste sélection
Objectifs
Dans ce TP vous allez connaître les différents types de sélection dans une
listbox.
Travail Demandé :
1. créer l’interface ci-dessous.
Figure 15
El ANZI Page 31 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
2. en cliquant sur le bouton « remplir liste », la liste à gauche sera remplit
par des éléments de votre choix, pour nous c’est une liste des villes
marocaines.
3. le bouton élément sélectionné permet d’ajouter le ou les éléments
sélectionnés ; dans la liste ; au textbox (RTF).
4. le type de sélection dans la liste et celui de l’option sélectionnée dans
« sélection mode » :
None : pas de sélection permise.
One : sélection d’un élément à la fois.
MultiSimple : Plusieurs éléments peuvent être sélectionnés.
MultiExtended : Plusieurs éléments peuvent être sélectionnés
et tu peux utiliser les touches MAJ et CTRL, ainsi que les
touches de direction, pour effectuer les sélections.
5. la case à cocher « Multicolonne » permet à la liste de prendre en charge
les colonnes multiples.
6. tester votre application, à ta santé.
Proposition de solution :
Private Sub remplir_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
Dim i As Integer
[Link]()
Dim tableau() As String = {"Beni mellal", "Tadla",
"Fes", _
"Tanger", "Azilal", "Fkih Ben Salah", "Rabat", "Casa",
"Agadir"}
[Link](tableau)
End Sub
Private Sub multicolonne_CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] = True Then
[Link] = True
Else
[Link] = False
End If
End Sub
Private Sub MultiExtended _CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] = True Then
[Link] = [Link]
End If
End Sub
El ANZI Page 32 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub elementsélectionné_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
elementsélectionné.Click
For i As Integer = 0 To [Link] - 1
[Link] += [Link](i) & vbCrLf
Next
End Sub
Private Sub MultiSimple _CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] = True Then
[Link] = [Link]
End If
End Sub
Private Sub One _CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] = True Then
[Link] = [Link]
End If
End Sub
Private Sub None _CheckedChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] = True Then
[Link] = [Link]
End If
End Sub
TP N° 12 Arraylist, Classe
Objectifs
Dans ce TP vous allez découvrir les fonctionnalités de Arraylist et aussi
l’utilisation d’une classe.
Travail Demandé :
1. créer l’interface ci-dessous :
El ANZI Page 33 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 16
Cette application a pour but la gestion des règlements. Elle permet entre autres le
calcul du montant que doit payer le client après une séance de navigation.
Il existe trois types de clients :
Etudiant : il paye 15 DH /heure
Fonctionnaire : il paye 20 DH /heure
Abonné : il paye 6 DH /heure
Le Cyber café offre trois services :
Navigation : 0DH de plus pour chaque client /heure
Visioconférence : 20DH de plus pour chaque client /heure
Navigation Assistance : 10DH de plus pour chaque client /heure
2. créer une classe comprenant les éléments de l’interface comme
attributs et créer les méthodes et les propriétés.
3. créer une fonction qui calcule le montant.
4. le montant sera calculer automatiquement et afficher dans la zone
de montant après avoir remplir la zone nombre d’heures et
sélectionner le type client et le service utilisé.
5. Programmer les boutons «nouveau », «précédent», «suivant »,
«premier», «dernier».
6. écrire le code des boutons modifier, supprimer et chercher par le N°
du règlement.
7. programmer le bouton quitter pour mettre fin l’application.
El ANZI Page 34 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Public Class Gestion
’Déclaration des attributs de type privé.
Private m_nreg As Integer
Private m_client As String
Private m_typeclient As String
Private m_nump As Integer
Private m_serut As String
Private m_nbrh As Integer
Private m_date As Date
’Création du constructeur
Sub New(ByVal a As Integer, ByVal b As String, ByVal c As
String, ByVal d As Integer, ByVal e As String, ByVal f As
Integer, ByVal g As Date)
m_nreg = a : m_client = b : m_typeclient = c : m_nump = d
m_serut = e : m_nbrh = f : m_date = g
End Sub
’création des propriétés pour l’accés aux attributes.
Public Property nreg() As Integer
Get
Return m_nreg
End Get
Set(ByVal Value As Integer)
m_nreg = Value
End Set
End Property
Public Property client() As String
Get
Return m_client
End Get
Set(ByVal Value As String)
m_client = Value
End Set
End Property
Public Property typeclient() As String
Get
Return m_typeclient
End Get
Set(ByVal Value As String)
m_typeclient = Value
End Set
End Property
Public Property nump() As Integer
Get
Return m_nump
End Get
El ANZI Page 35 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Set(ByVal Value As Integer)
m_nump = Value
End Set
End Property
Public Property serut() As String
Get
Return m_serut
End Get
Set(ByVal Value As String)
m_serut = Value
End Set
End Property
Public Property nbrh() As Integer
Get
Return m_nbrh
End Get
Set(ByVal Value As Integer)
m_nbrh = Value
End Set
End Property
Public Property datee() As Date
Get
Return m_date
End Get
Set(ByVal Value As Date)
m_date = Value
End Set
End Property
End Class
Form1 :
Public gest As Gestion
Public pos As Integer
Public list As New ArrayList
Private Sub Form1_Load(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim tab() as string={“etudiant”,” fonctionnaire”,
abonné”}
[Link](tab)
tab={"navigation","visioconférence","navigation assistance"}
[Link](tab)
[Link] = 0
[Link] = 0
El ANZI Page 36 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
End Sub
Sub calcul()
Dim t As Single
Select Case [Link]
Case "etudiant"
t = 15
Case "fonctionnaire"
t = 20
Case "abonné"
t = 6
End Select
Select Case [Link]
Case "navigation"
[Link] = (t * CDbl([Link])).ToString
Case "visioconférence"
[Link] = CDbl(t * [Link] + ([Link] * 10))
Case "navigation assistance"
[Link] = CDbl(t * [Link] + [Link] * 20)
End Select
End Sub
Private Sub Button3_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
raz()
End Sub
Private Sub Button1_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim i As Integer = 0
If MsgBox("Voulez vous vraiment Supprimer
l'enregistremnet courant??!!", [Link] Or
[Link], "Confirmation de Suppression...?") =
[Link] Then
For Each gest In list 'col
If [Link] = [Link] Then
[Link](i)
Try
lire(i)
pos = i
Catch ex As Exception
If [Link] < 1 Then
raz()
Else
lire(i - 1)
pos = i - 1
End If
End Try
Exit Sub
End If
El ANZI Page 37 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
i += 1
Next
End If
End Sub
Sub raz()
[Link] = ""
[Link] = ""
[Link] = 0
[Link] = ""
[Link] = 0
[Link] = ""
[Link] = ""
[Link] = ""
[Link]()
End Sub
Private Sub tt_SelectedIndexChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] <> "" And [Link] <> "" And
IsNumeric([Link]) Then
calcul()
Else
[Link] = ""
End If
End Sub
Private Sub tsu_SelectedIndexChanged(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
If [Link] <> "" And [Link] <> "" And
IsNumeric([Link]) Then
calcul()
Else
[Link] = ""
End If
End Sub
Public Sub remplirzones()
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End Sub
El ANZI Page 38 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub tnh_TextChanged(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
If [Link] <> "" And [Link] <> "" And
IsNumeric([Link]) Then
calcul()
Else
[Link] = ""
End If
End Sub
Private Sub enregistrer_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
For Each gest In list
If [Link] = CInt([Link]) Then
MsgBox("cet enregistrement " & [Link] & "
existe déja", [Link], "Enregistrer...")
Exit Sub
End If
Next
gest = New Gestion(CType([Link], Integer), [Link],
[Link], CType([Link], Integer), [Link], _
CType([Link], Integer), CType([Link], Date))
[Link](gest)
pos = [Link] - 1
End Sub
Private Sub Modifier_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim i As Integer = 0
If MsgBox("Voulez vous vraiment modifier
l'enregistremnet courant??!!", [Link] Or
[Link], "Confirmation de Modification...?") =
[Link] Then
For Each gest In list
If [Link] = [Link] Then
gest = New Gestion(CType([Link],
Integer),[Link], [Link], CType([Link], Integer), _
[Link],Type([Link], Integer), CType([Link], Date))
Try
[Link](i)
If [Link] < 1 Then
[Link](gest)
Else
[Link](i, gest)
End If
Catch ex As Exception
MsgBox([Link], [Link])
End Try
Exit For
El ANZI Page 39 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
End If
i += 1
Next
End If
End Sub
Sub lire(ByVal p As Integer)
gest = CType([Link](p), Gestion)
remplirzones()
End Sub
Private Sub Premier_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
pos = 0
lire(pos)
End Sub
Private Sub Dernier_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
pos = [Link] - 1
lire(pos)
End Sub
Private Sub Suivant_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Try
pos += 1
lire(pos)
Catch ex As Exception
pos -= 1
End Try
End Sub
Private Sub Précédent_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles Précé[Link]
Try
pos -= 1
lire(pos)
Catch ex As Exception
pos += 1
End Try
End Sub
Private Sub Chercher_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim i As Integer
Dim a As Integer = InputBox("entrer le code à
rechercher:", "Recherecher...")
For Each gest In list
If [Link] = a Then
El ANZI Page 40 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Remplirzones()
pos = i
Exit Sub
End If
i += 1
Next
MsgBox("l'élément recherché n'existe pas ????!!!!",
[Link], "Recherecher....")
End Sub
Private Sub Quitter_Click(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
[Link] Or [Link], "Sortir de
l’application") = [Link] Then
[Link]()
End If
End Sub
TP N° 13 tabcontrol
Objectifs
Dans ce TP on va mettre en œuvre « tabcontrol » et ses astuces.
1. Créer l’interface ci-dessous :
Figure 17
El ANZI Page 41 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 18
2. écrire une procédure qui permet d’intercepter l’écriture des lettres dans les zones de
texte.
3. « ok » permet de calculer la somme des deux nombres et le produit des deux nombre
dans la feuille « produit ».
4. « Annuler » permet de vider les zones de texte.
5. « Quitter » pour sortir de l’application.
Solution :
Private Sub Button3_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
Dim reponse As Integer
reponse = [Link]("Voulez vous vraiment
quitter l'application", "TSDI1", [Link],
[Link])
If reponse = vbYes Then
End
End If
End Sub
Private Sub Button4_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim reponse As Integer
reponse = [Link]("Voulez vous vraiment
quitter l'application", "TSDI1", [Link],
[Link])
If reponse = vbYes Then
End
End If
End Sub
El ANZI Page 42 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Sub intercepter(ByVal e As
[Link])
If [Link]([Link]) Or AscW([Link]) = 8 Or
[Link] = "," Then
[Link] = False
Else
[Link] = True
End If
End Sub
Private Sub Button1_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
[Link] = CInt([Link]) +
CInt([Link])
End Sub
Private Sub TabPage2_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link] = [Link]
[Link] = [Link]
End Sub
Private Sub TextBox1_KeyPress(ByVal sender As Object,
ByVal e As [Link]) Handles
[Link]
Call intercepter(e)
End Sub
Private Sub TextBox2_KeyPress(ByVal sender As Object,
ByVal e As [Link]) Handles
[Link]
Call intercepter(e)
End Sub
Private Sub TextBox6_KeyPress(ByVal sender As Object,
ByVal e As [Link]) Handles
[Link]
intercepter(e)
End Sub
Private Sub TextBox5_KeyPress(ByVal sender As Object,
ByVal e As [Link]) Handles
[Link]
Call intercepter(e)
End Sub
Private Sub TabControl1_SelectedIndexChanged(ByVal sender
As [Link], ByVal e As [Link]) Handles
[Link]
El ANZI Page 43 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
[Link] = [Link]
[Link] = [Link]
[Link] = ""
End Sub
Private Sub Button6_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link] = CInt([Link]) *
CInt([Link])
End Sub
Private Sub Button5_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Call anul(TextBox4, TextBox5, TextBox6)
End Sub
Public Sub anul(ByVal a As TextBox, ByVal b As TextBox, ByVal
c As TextBox)
[Link]()
[Link]()
[Link]()
End Sub
Private Sub Button2_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Call anul(TextBox1, TextBox2, TextBox3)
End Sub
TP N° 14
Ritchtextbox,ContextMenu,ColorDialog,
FontDialog
Objectifs
Dans ce TP on va voir ensemble le fonctionnement de la classe FontDialog,
ColorDialog et CotextMenu. Et on va mettre les points sur quelques propriétés
du contrôle RitchTextBox.
1. Créer l’interface ci-dessous :
El ANZI Page 44 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 19
2. Créer un menu contextuel contenant les éléments : « Copier », « Couper »,
« Coller » et « Sélectionner tout » et programmer Chacun d’eux.
En introduisant
les éléments ici
En double
cliquant ici pour ET
ajouter un menu
contextuel
En
sélectionnant
Figure 20
3. programmer chaque bouton à ta guise☺.
4. tester votre application.
Solution :
El ANZI Page 45 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub BackColor_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim a As New ColorDialog
[Link] = True
[Link] = True
[Link] = True
[Link] = [Link]
If [Link] = [Link] Then
[Link] = [Link]
End If
End Sub
Private Sub Font_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
Dim a As New FontDialog
[Link] = True
[Link] = True
[Link] = True
[Link] = True
[Link] = True
[Link] = [Link]
[Link] = [Link]
If ([Link]() = [Link]) Then
[Link] = [Link]
[Link] = [Link]
End If
End Sub
Private Sub Centre_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link] = [Link]
End Sub
Private Sub Left_Click(ByVal sender As [Link], ByVal
e As [Link]) Handles [Link]
[Link] = [Link]
End Sub
Private Sub Right_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link] = [Link]
End Sub
Private Sub Copier_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]([Link])
End Sub
Private Sub couper_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
El ANZI Page 46 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
[Link]()
End Sub
Private Sub Coller_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]()
End Sub
Private Sub Selectrionnertout_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
[Link]()
End Sub
Private Sub Button1_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim a As MessageBox
Dim b As MsgBoxResult
b = [Link]("Voulez vous vraiment Sortir ????",
"Confirmation!!", [Link], _
[Link], MessageBoxDefaultButton.Button1)
If b = [Link] Then
End
End If
End Sub
TP N° 15 Les Fichiers, Les Menus, Datagrid
Objectifs
Dans ce TP nous vous proposons une interface contenant des menus dans le but
de gérer des stagiaires à l’aide des fichiers textes, et en listant les stagiaires dans
une datagrid.
1. Créer l’interface ci-dessous :
El ANZI Page 47 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
2. programmer les menus du premier formulaire « gestion des stagiaire » :
« Nouveau » pour vider les zones de texte.
« Enregistrer » pour ajouter les stagiaires dans un fichier texte.
« parcourir »pour afficher le formulaire « Consultation ….».
3. la consultation des stagiaires ce fait dans une collection remplie d’après le
fichier texte.
4. la mise à jour ce fait sur le fichier : « Supprimer », « modifier ».
El ANZI Page 48 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
5. la rechercher ce fait par le code ou le nom du stagiaire.
6. le menu lister permet d’afficher les stagiaires contenus dans le fichier dans une
datagrid.
7. tester votre application.
NB : Le remplissage du contrôle Datagrid ce fait par le biais d’une datatable.
Proposition de solution :
Module :
Module Module1
Public Structure stagiaire
Private m_code As Long
Private m_nom As String
Private m_prenom As String
Public Property code() As Long
Get
Return m_code
End Get
Set(ByVal Value As Long)
m_code = Value
End Set
End Property
Public Property Nom() As String
Get
Return m_nom
End Get
Set(ByVal Value As String)
m_nom = Value
End Set
End Property
Public Property Prenom() As String
Get
Return m_prenom
End Get
Set(ByVal Value As String)
m_prenom = Value
End Set
End Property
End Structure
Public enr As stagiaire
Public fs As FileStream
Public rd As StreamReader
Public wr As StreamWriter
Public f1 As New Form1
Public f2 As New Form2
Sub main()
[Link](f1)
End Sub
End Module
El ANZI Page 49 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Form1 :
Public tab() As String
Private Sub Form1_Load(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
If Not [Link]("c:\[Link]") Then
fs = New FileStream("c:\[Link]",
[Link])
wr = New StreamWriter(fs)
[Link] = False
Else
fs = New FileStream("c:\[Link]",
[Link])
wr = New StreamWriter(fs)
End If
End Sub
Sub vider()
[Link]()
[Link]()
[Link]()
[Link]()
End Sub
Private Sub Parcourir_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]()
[Link]()
[Link]()
End Sub
Private Sub Nouveau_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Vider()
End Sub
Private Sub Quitter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
End
End Sub
Private Sub Enregistrer_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
[Link]()
fs = New FileStream("c:\[Link]", [Link])
rd = New StreamReader(fs)
Dim ligne As String
Do While [Link] <> -1
ligne = [Link]
tab = [Link](";".Chars(0))
El ANZI Page 50 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
If CInt([Link]) = CInt(tab(0)) Then
MsgBox("l'enregistrement n° " & [Link] & " Existe
déjà!!")
[Link]()
[Link]() : [Link]()
Exit Sub
End If
Loop
[Link]()
fs = New FileStream("c:\[Link]", [Link])
wr = New StreamWriter(fs)
[Link] = CInt([Link])
[Link] = [Link]
[Link] = [Link]
[Link]([Link] & ";" & [Link] & ";" &
[Link])
[Link] = True
End Sub
Form2 :
Public tab() As String
Public list As New Collection
Public Shared pos As Integer
Private Sub Form2_Load(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
If Not [Link]("c:\[Link]") Then
MsgBox("File Not Found", [Link])
Else
fs = New FileStream("c:\[Link]", [Link])
rd = New StreamReader(fs)
Dim ligne As String
Do While [Link] <> -1
ligne = [Link]
tab = [Link](";")
[Link] = CInt(tab(0))
[Link] = tab(1)
[Link] = tab(2)
[Link](enr, [Link])
Loop
End If
pos = 1
Try
lire(pos)
Catch ex As Exception
End Try
[Link]()
End Sub
El ANZI Page 51 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Private Sub Dernier_Click(ByVal sender As Object, ByVal e
As [Link]) Handles [Link]
pos = [Link]
lire(pos)
End Sub
Private Sub Precedent_Click(ByVal sender As Object, ByVal e
As [Link]) Handles [Link]
pos -= 1
Try
lire(pos)
Catch ex As Exception
pos += 1
End Try
End Sub
Sub lire(ByVal p As Integer)
enr = [Link](pos)
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
End Sub
Private Sub Suivant_Click(ByVal sender As Object, ByVal e As
[Link]) Handles [Link]
pos += 1
Try
lire(pos)
Catch ex As Exception
pos -= 1
End Try
End Sub
Private Sub Premier_Click(ByVal sender As Object, ByVal e
As [Link]) Handles [Link]
pos = 1
lire(pos)
End Sub
Private Sub cmd_Supprimer_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
cmd_Supprimer.Click
If MsgBox("Voulez vous vraiment supprimer
l'enregistrement courant??", [Link] Or
[Link] Or MsgBoxStyle.DefaultButton2,
"Supprimer!!!") = [Link] Then
If [Link]("c:\[Link]") Then
[Link]("c:\[Link]")
End If
El ANZI Page 52 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
fs = New FileStream("c:\[Link]",
[Link])
wr = New StreamWriter(fs)
fs = New FileStream("c:\[Link]", [Link])
rd = New StreamReader(fs)
Dim ligne As String
Do While [Link] <> -1
ligne = [Link]
tab = [Link](";")
If Not CInt([Link]) = CInt(tab(0)) Then
[Link](ligne)
End If
Loop
Try
[Link]([Link])
Catch ex As Exception
MsgBox("Pas d'élément à supprimer!!!!!!",
[Link], "Erreur!!!!")
End Try
[Link]() : [Link]()
[Link]("c:\[Link]")
Rename("c:\[Link]", "c:\[Link]")
'---------------------------------------------------------
Try
lire(pos)
Catch ex As Exception
If [Link] < 1 Then
vider()
Else
pos -= 1
lire(pos)
End If
End Try
End If
End Sub
Sub vider()
[Link]()
[Link]()
[Link]()
End Sub
Private Sub cmd_Modifier_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles cmd_Modifier.Click
Dim i As Integer
If MsgBox("Voulez vous vraiment modifier
l'enregistrement courant??", [Link] Or
[Link] _
Or MsgBoxStyle.DefaultButton2, "Modifier!!!") =
[Link] Then
El ANZI Page 53 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
If [Link] > 0 Then
fs = New FileStream("c:\[Link]", [Link])
wr = New StreamWriter(fs)
fs = New FileStream("c:\[Link]", [Link])
rd = New StreamReader(fs)
Dim ligne As String
Do While [Link] <> -1
i += 1
ligne = [Link]
tab = [Link](";")
If Not CInt([Link]) = CInt(tab(0)) Then
[Link](ligne)
Else
[Link]([Link] & ";" &
[Link] & ";" & [Link])
[Link] = CInt([Link]) :
[Link] = [Link] : [Link] = [Link]
Try
[Link](enr, [Link], i)
Catch ex As Exception
If [Link] < 1 Then
[Link](enr, [Link])
Else
[Link](enr, [Link], , i - 1)
End If
End Try
End If
Loop
[Link]() : [Link]()
[Link]("c:\[Link]")
Rename("c:\[Link]", "c:\[Link]")
Else
MsgBox("Pas d'élément à modifier!!!!!!",
[Link], "Erreur!!!!")
End If
End If
End Sub
Private Sub RechercherCode_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
Try
Dim rech As Integer = InputBox("Entrer le code à
rechercher!! :", "Rechercher....!!")
For Each enr In list
If [Link] = rech Then
[Link] = [Link] : [Link] =
[Link] : [Link] = [Link]
Exit Sub
End If
Next
El ANZI Page 54 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
MsgBox("L'enregistrement " & rech & " est
introuvable!!", [Link], "Rechercher...!")
Catch ex As Exception
[Link]()
End Try
End Sub
Private Sub RechercherNom_Click(ByVal sender As
[Link], ByVal e As [Link]) Handles
[Link]
Try
Dim rech As String = InputBox("Entrer le NOM à
rechercher!! :", "Rechercher....!!")
For Each enr In list
If [Link] = rech Then
[Link] = [Link] : [Link] =
[Link] : [Link] = [Link]
Exit Sub
End If
Next
MsgBox("L'enregistrement dont le nom :" & rech & "
est introuvable!!", [Link], "Rechercher...!")
Catch ex As Exception
[Link]()
End Try
End Sub
Private Sub Quitter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
[Link]() : [Link]()
End Sub
Private Sub Lister_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Dim frm As New Form3(list)
[Link]()
End Sub
Form3 :
Surcharger le constructeur :
Public Sub New(ByVal CollStag As Collection)
[Link]()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
MaColl = CollStag
'Ajoutez une initialisation quelconque après l'appel
InitializeComponent()
End Sub
El ANZI Page 55 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Dim MaColl As Collection
Dim dt As New DataTable
’Procedure pour créer une datatable
Sub CreaterTable()
Dim Col As DataColumn
Col = New DataColumn
[Link] = "Code"
[Link] = [Link]("System.Int64")
[Link](Col)
' ---
Col = New DataColumn
[Link] = "Nom"
[Link] = [Link]("[Link]")
[Link] = 60
[Link](Col)
' ---
Col = New DataColumn
[Link] = "Prénom"
[Link] = [Link]("[Link]")
[Link] = 60
[Link](Col)
End Sub
’ Procedure pour remplir Dtatable et après datagrid
Sub RemplirGrid()
Dim Stag As stagiaire, dr As DataRow
For Each Stag In MaColl
dr = [Link]()
dr("Code") = [Link]
dr("Nom") = [Link]
dr(2) = [Link]: [Link](dr)
Next
’Remplir datagrid
[Link] = dt
End Sub
Private Sub Form3_Load(ByVal sender As [Link], ByVal e
As [Link]) Handles [Link]
CreaterTable():RemplirGrid()
End Sub
Private Sub ButQuitter_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
Close()
End Sub
El ANZI Page 56 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Notes :
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
..............................................................................................................................
El ANZI Page 57 sur 58 TSDI1
[Link] C’EST LA PRATIQUE OFPPT / ISGI / BENI MELLAL
Conclusion :
Je crois que c’est la fin de ce document…!!!! Je rigole ☺:
Et oui c’est la vérité, c’est vraiment la fin.
J’espère que vous avez trouvé au moins ce que vous cherchiez, et que ce
document était vraiment utile pour les newbies du développement.
El ANZI Page 58 sur 58 TSDI1