Activite2.4 Zoghlami VB
Activite2.4 Zoghlami VB
Activite2.4 Zoghlami VB
événementielle avec
VB.NET
Manel ZOGHLAMI
ISETJ – Tunisie
2012
Exemple: Dim age As Integer est une instruction qui déclare un entier nommé age.
Cependant, Plusieurs instructions peuvent se suivre sur une même ligne, séparées par ':'
Exemple:
2
▪ L'indentation est ignorée du compilateur mais elle permet une meilleure
compréhension du code par le programmeur.
2. Les variables
Le langage VB.NET utilise plusieurs types de données. Ceux qui sont couramment
utilisés sont résumés dans le tableau ci-dessous.
Exemples:
3
Dim Reponse As String ‘ Mot proposé par l'utilisateur
Par défaut, le compilateur VB considère que toute variable qui apparaît doit avoir
été déclarée. Toutefois, si on ajoute la ligne Option Explicit Off , VB sera permissif : il
nous permet d'utiliser des variables sans les déclarer. Ceci n'est pas recommandé, il est
préférable de laisser la valeur par défaut et toujours déclarer les variables.
Exemple:
Option Explicit On xplicit off
Option E
'valeur par défaut, on peut donc ne ' ceci n est pas recommandé
'pas écrire cette ligne
Module Module1
Module Module1
Sub Main()
Sub Main() Dim i As Integer = 3
Dim i As Integer = 3 s = i
s = i Console.Out.WriteLine(s)
Console.Out.WriteLine(s)
End Sub
End Sub
End Module
End Module
➔ Pas d'erreur, on affiche 3
➔ Erreur: s n'est pas déclaré
Dim nomTableau(n) as type ou Dim nomTableau () as type=New type(n) {}
On peut initialiser un tableau lors de sa déclaration. Dans ce cas, on n'a pas besoin
d'indiquer sa taille :
4
Dim entiers() As Integer = {0, 10, 20, 30}
Les tableaux ont une propriété Length qui est le nombre d'éléments du tableau.
Cette propriété est surtout utilisée pour parcourir les éléments d'un tableau.
Exemple:
Module TesterTableau
Sub Main()
Dim Tab(5) As Integer
'remplir le tableau
For i = 0 To Tab.Length - 1
Tab(i) = i * 10
Next
'affichage
Console.Out.WriteLine("Taille du tableau: " & Tab.Length)
For i As Integer = 0 To Tab.Length - 1
End Sub
End Module
Exécution
Taille du tableau: 6
Tab(0)= 0
Tab(1)= 10
Tab(2)= 20
Tab(3)= 30
Tab(4)= 40
Tab(5)= 50
Tab 0 10 20 30 40 50
0 1 2 3 4 5
Exercice :
Ecrire le code VB.NET permettant de demander les 3 matières le plus préférées
pour un étudiant, les stocker dans un tableau puis les afficher.
Solution:
5
Dim TabMatiere(2) As String
6
tab (1,0)= 10
tab (1,1)= 11
tab (2,0)= 20
tab (2,1)= 21
Ligne 0 0 1
Ligne 1 10 11
Ligne 2 20 21
7
Option Strict off Option Strict On
' par défaut donc on peut Module Module1
' supprimer cette ligne
Module Module1 Sub Main()
' nombre --> chaîne
Sub Main() Dim i As Integer = 3
' nombre --> chaîne Dim s As String
Dim i As Integer = 3 s = i
Dim s As String Console.Out.WriteLine(s)
s = i
Console.Out.WriteLine(s)
' chaîne --> nombre
' chaîne --> nombre Dim i2 As Integer
Dim i2 As Integer Dim s2 As String = "4"
Dim s2 As String = "4" i2 = s2
i2 = s2 Console.Out.WriteLine(i2)
Console.Out.WriteLine(i2)
Console.In.ReadLine()
Console.In.ReadLine()
End Sub
End Sub
End Module End Module
Résultat:
3
4
Il est à noter que les nombres réels sous forme de chaîne de caractères doivent
utiliser la virgule et non le point décimal. Ainsi on écrit
Dim d As Double = 3.1 et Dim d2 As Double = Double.Parse("4,2")
8
c) Ctype: On peut utiliser la fonction CType(expression, type) qui permet de
convertir l'expression vers le type précisé. Le programme ci-dessous illustre
l'utilisation de cette fonction.
Module CtypeModule
Sub main()
Dim var1 As Date = CType("20 janvier 2011", Date)
Dim var2 As Long = CType("333", Long)
Dim var3 As Boolean = CType("true", Boolean)
Dim var4 As Byte = CType("222", Byte)
Dim var5 As Char = CType("A", Char)
Console.Out.WriteLine("var1=" & var1)
Console.Out.WriteLine("var2=" & var2)
Console.Out.WriteLine("var3=" & var3)
Console.Out.WriteLine("var4=" & var4)
Console.Out.WriteLine("var5=" & var5)
End Sub
End Module
Execution:
20/01/2011
333
True
222
A
e) CBool,CByte,CChar,CDate,CDbl,CDec,CInt,CLng,CObj,CShort,CSng,CStr
Le résultat de ces fonctions est :
▪ CBool : boolean
▪ Cbyte : byte
▪ CChar : Char
▪ CDate: date
▪ CDbl :double
▪ CDec : decimal
▪ CInt : Integer
▪ CLng: long
▪ CObj: object
▪ CShort : short
▪ CSng: single
9
▪ CStr: String
Module CXModule
Sub main()
Dim var1 As Date = CDate("20 janvier 2011")
Dim var2 As Long = CLng("333")
Dim var3 As Boolean = CBool("true")
Dim var4 As Byte = CByte("222")
Dim var5 As Char = CChar("A")
Console.Out.WriteLine("var1=" & var1)
Console.Out.WriteLine("var2=" & var2)
Console.Out.WriteLine("var3=" & var3)
Console.Out.WriteLine("var4=" & var4)
Console.Out.WriteLine("var5=" & var5)
End Sub
End Module
Execution:
20/01/2011
333
True
222
A
Il est à noter que la conversion d'une chaîne vers un nombre peut échouer si la
chaîne ne représente pas un nombre valide. Il y a alors génération d'une erreur qu'on
appelle exception en VB.NET. La gestion de ce genre d'erreurs va être étudiée plus.
3. Les opérateurs
10
MOD Modulo (reste de la division entière) 5 MOD 2 = 1
Il existe diverses fonctions mathématiques qui sont définies dans une classe .NET
appelée Math. Voici quelques-unes:
▪ Sqrt (x) racine carree
▪ Pow( x, y) x à la puissance y (x>0)
▪ Abs(x ) valeur absolue
▪ Cos(x) Cosinus
▪ Sin(x) Sinus
Exemple:
Dim a, b As Double
a = Math.Sqrt(4)
b = Math.Cos(2)
Le résultat d'une expression de comparaison est un booléen. Les opérateurs sont les
suivants:
▪ = : égal à
▪ < >: différent de
▪ < : plus petit que (strictement)
▪ >: plus grand que (strictement)
▪ <= : inférieur ou égal
▪ >= : supérieur ou égal
▪ Like : correspond à un modèle
▪ Is : identité d'objets.
Tous ces opérateurs ont la même priorité. Ils sont évalués de la gauche vers la droite.
● Comparaison des caractères
Soient deux caracteres C1 et C2. Il est possible de les comparer avec les operateurs
: <, <=, =, <>, >, >=. Ce sont alors leurs valeurs Unicode des caractères, qui sont des
nombres, qui sont comparées. Selon l'ordre Unicode, on a les relations suivantes :
espace < .. < '0' < '1' < .. < '9' < .. < 'A' < 'B' < .. < 'Z' < .. < 'a' < 'b' < .. <'z'
Module ComparerStrings
Sub main()
11
Dim aMaj As Char = "A"
Dim bMin As Char = "b"
Dim aMin As Char = "a"
Console.Out.WriteLine("a<b=" & (aMin < bMin))
Console.Out.WriteLine("A<a=" & (aMaj < aMin))
End Sub
End Module
Exécution:
a<b= true
A<a = true
Les chaines de caractères sont comparées caractère par caractère. La première inégalité
rencontrée entre deux caractères induit une inégalité de même sens sur les chaines.
Exemple:
Module ComparerStrings
Sub main()
Dim exemple As String = "exemple"
Dim example As String = "example"
Dim MajExemple As String = "EXEMPLE"
Dim exe As String = "exe"
Console.Out.WriteLine("exemple<example=" & (exemple < example))
Console.Out.WriteLine("exemple < EXEMPLE =" & (exemple <
MajExemple))
Console.Out.WriteLine("exe< exemple =" & (exe < exemple))
Console.Out.WriteLine("exemple like exe*=" & ("exemple" Like
"exe*"))
End Sub
End Module
Exécution:
exemple<example= False
exemple < EXEMPLE = False
exe< exemple = True
exemple like exe*= True
12
3.3. Opérateurs logiques
Les Opérations logiques ou opérateurs de bits sont les suivants:
● And : et logique
● Or : ou logique
● Not : négation
● Xor : ou exclusif.
● op1 AndAlso op2 : si op1 est faux, op2 n'est pas évalué et le résultat est
faux.
● op1 OrElse op2 : si op1 est vrai, op2 n'est pas évalué et le résultat est vrai.
La priorité de ces operateurs entre-eux est la suivante:
1. Not
2. And, AndAlso
3. Or, OrElse
4. Xor
➔ On affiche 5
De même on a:
▪ a- =b → a=a-b
▪ a*=b → a=a*b
▪ a/=b → a=a/b
▪ a\=b → a=a\b
▪ a^=b →a=a^b
▪ a&=b → a=a&b ( ici a et b sont des chaines de caractères)
4. Les sous-programmes
VB .NET permet l’utilisation des procédures et des fonctions avec ou sans paramètres. On
rappelle que la différence principale entre la procédure et la fonction est que cette dernière
retourne une valeur lorsqu’elle est appelée.
13
End Sub
Pour appeler une procédure, on écrit:
Call NomProcédure (paramètre1, …, paramètreN)
NomProcédure paramètre1, …, paramètreN
Exemple
Call Remplissage(n, T)
Remplissage n, T
4.2. Les fonctions
14
La structure générale d'un module contenant la procédure main est la suivante:
' options
Option Explicit On
Option Strict On
Module nomDuModule
Sub main()
....
End Sub
Function nomFonction(… )
……..
End Function
End Module
Exemple: Calcul du factoriel d’un entier n
Donner un programme qui utilise une procédure Factoriel qui prend en paramètre la
valeur de n et la variable résultat fact pour calculer le factoriel d'un entier.
Module calculFact
Sub main()
Dim fact As Integer = 1
Factoriel(3, fact)
Console.WriteLine(fact)
Console.ReadLine()
End Sub
End Module
Execution:
15
6
n est passée par valeur (utilisée seulement pour calculer Fact) alors que Fact doit
être passée par référence car son contenu change.
Si on passe fact par valeur, on aura 1 comme résultat: Fact n’est pas influencée par
la procédure et a conservé sa valeur d'appel.
Exercice:
Donner une autre solution en utilisant une fonction.
Solution:
Module calculFact
Function Factoriel(ByVal n As Integer) As Integer
Dim Fact As Integer = 1
Dim i As Integer
For i = 1 To n
Fact = Fact * i
Next
Factoriel = Fact
End Function
Sub main()
Dim res As Integer = Factoriel(3)
Console.WriteLine(res)
Console.ReadLine()
End Sub
End Module
Les deux instructions Exit function et Exit Sub permettent respectivement
l'interruption d'une fonction/procédure, sans exécution des instructions restante.
Remarque: Dans chaque procédure et fonction, on peut déclarer des variables
locales. Une fonction ou une procédure peut être déclarée soit Privée (Private), soit
Publique (Public). Le sens de Privé ou Public est relatif au formulaire ou au module dans
lesquelles elles sont déclarées.
5. Les structures de contrôle
La syntaxe en VB est :
if condition then
instructions_alors
else
16
instructions_sinon
end if
La clause else est optionnelle.
L'instruction end if est nécessaire meme s'il s'agit d'une seule instruction dans le
bloc if.
On peut imbriquer les structures de choix comme le montre l'exemple suivant:
Module Condition_Module
Sub main()
Dim a As Integer = 3
If a > 5 Then
Console.Out.WriteLine(a & " est > " & 5)
Else
If a = 5 Then
Console.Out.WriteLine(a & " est = " & 5)
Else
Console.Out.WriteLine(a & " est < " & 5)
End If
End If
End Sub
End Module
17
instructions se trouvant après ‘Else Case’ seront exécutées. seules les actions liées à
la première condition vérifiée sont exécutées.
Le type de [expression] doit etre l'un des types suivants :
Integer, Long, Short, Single, String , Boolean ,Object, Byte, Char, Date, Decimal,
Double.
Liste_Valeurs_i sont des valeurs possibles de l'expression. Elle peut être :
▪ Une valeur : 2
▪ une suite de valeurs : 1, 3, 5, 7, 9
▪ une fourchette de valeur : 0 To 9
▪ une plage de valeurs : Is >= 10 (Is est un mot réservé optionnel)
▪ idem avec les opérateurs =, <, <=, >, >=, < >
Notez que ‘Liste_Valeurs_i’ peut être une combinaison de listes de valeurs comme dans le
cas des exemples suivants :
Exemple:
Dim a As I nteger = 22
Select Case a
Case 1 To 6, 8 To 10
Console.Out.WriteLine("a est dans l'intervalle [1,6] ou
[8,10]")
Case Is > 12
Console.Out.WriteLine("a est > 12 ")
Case Else
Console.Out.WriteLine("a est egal à 7 ,11 ou 12")
End Select
Ceci permet d'évaluer une expression et, selon la valeur logique prise par cette
expression, on affecte une valeur ou une autre à une variable. Cette structure peut
remplacer un bloc If … Then … Else … End If . L'exemple suivant illustre une utilisation
possible de IIF:
18
Dim Note As Single
Dim Réponse As String
Note = 15
Réponse = IIf(Note >= 10, " Admis ", " Ajourné ")
Console.Out.WriteLine(Réponse)
Exécution: Admis
Exercice
Donner la version équivalente à l'exemple précédent en utilisant un bloc IF .
Réponse
Dim Note As Single
Dim Reponse As String
Note = 15
If Note >= 10 Then
Reponse = "Admis"
Else
Reponse = "Ajourné"
End If
Console.Out.WriteLine(Reponse)
Exécution: Admis
Choose: Elle Renvoie une valeur parmi une liste de valeurs en fonction d’un
indice. Cette structure peut remplacer le bloc If ainsi que la structure SelectCase. La
syntaxeest la suivante:
Variable = Choose (indexe , valeur1, valeur2, … , valeurN)
L'indexe est de type double. Il doit varier entre 1 et le nombre de valeurs (N)
Exécution:
Bleu
19
Exercice
Donner la version équivalente à l'exemple précédent en utilisant un bloc Select Case.
Réponse
Dim couleur As String
Dim numCouleur As Integer
numCouleur = 3
Select Case numCouleur
Case 1
couleur = "Rouge"
Case 2
couleur = "Vert"
Case 3
couleur = "Bleu"
End Select
Console.Out.WriteLine(couleur)
Elle est utilisée si le Nombre de répétitions est connu à l'avance. La syntaxe est la
suivante:
For compteur [as type] = val_début To val_fin [Step pas ]
instructions
Next [compteur]
Par défaut, le type du compteur est entier, le pas est égal à 1.
Exemple:
Console.Out.WriteLine("Factoriel 3") Console.Out.WriteLine("Factoriel
Dim n As Integer = 3 (3)")
Dim fact As Integer = 1 Dim n As Integer = 3
For i = 1 To n Dim fact As Integer = 1
fact = fact * i For i = n To 1 Step -1
Next i fact = fact * i
Console.Out.WriteLine(fact) Next i
Console.Out.WriteLine(fact)
L'exécution donne:
6
20
Exemple:
Dim n As Integer = 8
For i = 0 To n
If i = 3 Then
Exit For
End If
Console.WriteLine(i)
Next i
Execution:
0
1
2
Une autre forme de boucle peut être utilisée quand on connait le nombre d'itérations
à l'avance, elle a la syntaxe suivante:
Exemple:
Dim langages() As String = {"JAVA", "VB", "C", "Pascal"}
For Each lgg As String In langages
Console.Out.WriteLine(lgg)
Next
Exercice:
Afficher la somme des éléments d'un tableau d'entier par deux méthodes: boucle
For et boucle ForEach.
Solution:
Dim tab() As Integer = {3, 4, 7} Dim tab() As Integer = {3, 4, 7}
Dim somme A s Integer = 0 Dim somme A s Integer = 0
For i = 0 T o tab.Length - 1 For Each ele As Integer In tab
somme = somme + tab(i) somme = somme + ele
Next
Next
Console.WriteLine(somme) Console.WriteLine(somme)
21
5.2.2. La boucle tant que
On boucle tant que la condition est vérifiée.
22
Else
Console.WriteLine(val & " non trouvé")
End If
Do Do Until (condition)
instructions instructions
Loop Until (condition) Loop
Test de la condition à la fin de la Test de la condition au début de la
boucle boucle → Les instructions peuvent ne pas
→ Exécution au moins une fois s’exécuter
23
Chapitre 2: Introduction à la Programmation
événementielle en VB.NET
1) Partie visuelle: des fenêtres, des boutons, des labels. C'est ce qui est vu par
l'utilisateur final de l'application.
2) Code VB.NET "derrière" la partie visuelle. C'est au développeur de réaliser
cette partie.
24
Quand on clique sur le bouton de la somme, on voit apparaitre le résultat. → Le
clique sur le bouton est un événement qui a causé l'affichage de la somme.
Quand un événement a lieu, une procédure liée à cet événement est appelée. Le
développeur de l'application doit développer le code VB.NET relatif à ces procédures. Une
procédure événementielle est donc une procédure classique mais qui s’exécute quand un
événement particulier se produit. (Il est à noter qu'elle peut être aussi appelée dans du code
comme une procédure classique). Dans notre exemple, on doit par exemple développer la
procédure au clique sur le bouton de l'addition. Cette procédure va :
En pratique, la procédure événementielle générée pour un objet suit la syntaxe
suivante (à ne pas modifier ces paramètres):
Nom de Utilité
l'élément
Form (feuille) C'est le conteneur graphique des contrôles de
l'application
Label Afficher un texte statique : un libellé.
(étiquette)
Text Box rentrer une valeur saisie, on peut aussi
(zone de texte) l'utiliser pour afficher du texte mais ce n'est pas
recommandé. (utiliser plutôt le label pour
l'affichage)
25
Button Lancer l’exécution d'une procédure
(bouton de événementielle (généralement suite au click sur
commande) ce bouton)
ListBox Afficher une liste de valeurs.
ComboBox Combiner l’utilité des contrôles ListBox et
TextBox
PictureBox Afficher une image dans un cadre. (Il peut
être redimensionné en fonction de l’image en
utilisant Autosize = True)
RadioButton Sélectionner une seule option parmi
(bouton radio) plusieurs.
2.2. Propriétés
VB.NET est un langage orienté objet. Les éléments graphiques (qu'on appelle des
contrôles), sont des objets de classes:
Par exemple: un bouton nommé "bouton1" est une instance de la Classe
"System.Windows.Forms.Button". Un bouton a donc des propriétés (des caractéristiques,
comme les attributs des objets vus en Java ) et des méthodes prédéfinies qu'on peut utiliser.
Pour chaque élément, on doit changer les propriétés des éléments. Il s'agit
généralement de changer 2 propriétés principales: "nom" et "texte". Ceci se fait à partir de
la fenêtre "propriétés".
Le nom : sert à désigner l'élément graphique dans le code.
Le texte : c'est le texte à afficher dans l'interface.
Chaque élément graphique a des propriétés communes avec les autres éléments, et
d'autres qui lui sont spécifiques. Voici quelques propriétés communes couramment
utilisées:
▪ Name : nom interne de l’objet utilisé dans le code
▪ Text :Texte affiché à l’écran (sauf pour les champs de saisie)
▪ BackColor : couleur du fond
▪ Enabled : Contrôle activé ou non
▪ Font : police de caractères
▪ ForeColor : couleur de l’écriture
▪ Visible : Contrôle visible ou non
26
▪ Width : hauteur de l’objet
▪ Height : largeur de l’objet
Pour accéder à une propriété à partir du code VB, on utilise la syntaxe suivante:
NomObjet.Propriété
Exemples:
txtNom.Text="moi" → modifier le texte de txtNom
cmdQuitter.enabled =false → rendre le bouton désactivé.
De même, pour accéder à une méthode propriété à partir du code VB, on utilise la
syntaxe suivante:
NomObjet.Méthode ()
Exemples :
frmPrincipale.hide () → cacher la fenêtre, elle n'est plus visible
frmPrincipale.show () → rendre la fenêtre visible
MessageBox.Show("Bonjour! ",
"titre", MessageBoxButtons.OKCancel)
MessageBox.Show("Bonjour!",
"titre", MessageBoxButtons.YesNoCancel)
L'instruction :
Dim reponse As String = InputBox("Donnez votre nom:", "titre de la fenetre")
27
Permet d'afficher une fenêtre pour récupérer une réponse de la part de l'utilisateur.
La réponse est stockée dans la variable "reponse" de type String.
Remarques :
▪ SI une des ces fenetres n'est pas affichée, on peut la faire apparaitre en utilisant le
menu AFFICHAGE dans la barre des menus :
28
▪ On peut changer l'emplacement de ces fenêtres en les glissant pas la souris.
▪ L'onglet de la boite à outils contient plusieurs types d'éléments, qui sont organisés
par type.
Pour créer nos applications, on va suivre une démarche contenant ces trois étapes:
1) Préparer l'interface graphique
2) Déterminer les événements
3) Développer la procédure liée à chaque événement.
3.2. Préparer l'interface graphique
Il s'agit de concevoir l'allure de l'interface graphique de l'application, et choisir les
différents éléments qui la composent. Dans notre cas, on va adopter pour cette
interface:
29
Pour chaque élément, on change 2 propriétés principales: "nom" et "texte". Ce ci se
fait à partir de la fenêtre "propriétés".
Une fois les événements sont précisés, on passe à développer le code relatif aux
procédures liées à chaque événement. En pratique, on double clique sur le
30
bouton de l'addition, on voit afficher la fenêtre du code associé au formulaire,
elle contient les lignes suivantes:
31
Public Class Form1
Private Sub btnSomme_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnSomme.Click
……..
End Sub
lass
d C
VB.Net est un langage orienté objets, entre autres les formulaires sont des classes.
Dans notre cas, on a la classe Form1 :
Public Class Form1
………
End Class
Dans cette classe, on trouve la procédure liée au clique sur le bouton btnSomme,
elle est générée automatiquement par l'environnement de développement que nous
utilisons.
Private Sub btnSomme_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnSomme.Click
. . . . .
End Sub
C'est Cette Procédure qui va être appelée quant l'événement "clique sur le bouton
btnSomme" a lieu → On parle alors d'une procédure liée à un événement. Ceci est la base
de la programmation événementielle.
Il est à noter qu'on peut ajouter d'autres événements sur le même élément graphique
: double clique… comme indiqué dans la figure qui suit :
32
Exercices
1) Donner le code correspondant au bouton de la soustraction
2) Ajouter deux boutons: multiplication et division.
4. Manipulation de quelques éléments
End Sub
End Class
Exercice:
Une fenêtre d'authentification contient un champ de saisie pour l'identifiant et un
autre pour le mot de passe de l'utilisateur. Si les deux sont égales à la chaine "iset", alors on
ouvre une autre fenêtre (la fenêtre principale de l'application). Donner le code de la
procédure événementielle liée au click sur le bouton connexion.
33
Solution:
Public Class frmAuthentification
Une étiquette sert à afficher du texte sur la fenêtre alors qu'une zone de texte sert à
récupérer le texte saisi par l'utilisateur. La première est une instance de la classe
System.Windows.Forms.Label de la plateforme .NET alors que la deuxième représente une
instance de la classe System.Windows.Forms.TextBox. Puisqu'ils servent principalement à
afficher ou saisir du texte, la propriété généralement utilisée pour ces deux contrôles est la
propriété Text. On peut éventuellement changer la police et la couleur des caractères.
34
est à noter bien que VB se charge de mettre à jour la propriété checked une fois que la
sélection est modifiée.
L'événement lié à la modification de l'état de la propriété checked est :
"CheckedChanged". Par exemple: " CheckBox1_ CheckedChanged " est le nom de la
procédure événementielle appelée quand la valeur de selection de l'objet a été changée.
Exercice: Donnez le code de la procédure événementielle liée au clique sur le bouton
qui permet d'afficher: Bonjour+ DSI ou RSI selon le bouton Radio sélectionné.
Solution:
Private Sub cmdBonjour_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles cmdBonjour.Click
If optDSI.Checked Then
MessageBox.Show("Bonjour DSI")
Else
MessageBox.Show("Bonjour RSI")
End If
End Sub
35
▪ ou bien placer un groupe d’options sur le formulaire et l'autre dans un groupe box.
Exercice :
Ajouter à l'interface de l'exercice précédent deux boutons radio pour le niveau: 2ème
année et 3ème année.
Correction:
Public Class test
End Sub
36
End Class
Exercice:
Soit l'interface suivante:
37
Solution:
Public Class listes
End Class
38
Bibliographie
39