Environnement de développement
Sabra MABROUK
1
Plan du cours
(cid:1) Chapitre 1: Introduction à l’environnement .NET (cid:1) Chapitre 2: Eléments de base du langage Visual basic.Net (cid:1) Chapitre 3: Les contrôles de Visual basic.Net (cid:1) Chapitre 4: Concepts de base de la P.O.O. sous Visual (cid:1) Chapitre 4: Concepts de base de la P.O.O. sous Visual
basic.Net
(cid:1) Chapitre 5: La gestion des fichiers textes sous Visual
basic.Net
(cid:1) Chapitre 6: ADO.Net et bases de données sous Visual
basic.Net
2
Chapitre 1 Chapitre 1
Introduction à l‘environnement .NET
3
EDI vs Framework (cid:1) Environnement de développement intégré (EDI):
(cid:1) EDI: Un logiciel regroupant un ensemble d'outils pour le
développement d’applications (Eclipse, NetBeans, Code::Blocks, WinDev, Visual Studio, etc.).
(cid:1) A ne pas confondre avec framework:
(cid:1) Un ensemble de composantes logicielles (code source) qui servent à créer des applications selon une architecture bien déterminée. déterminée.
(cid:1) En P.O.O. framework = ensemble de classes (cid:1) Exemples de frameworks:
(cid:1) Django : applications web, architecture MVC, langage
Python
(cid:1) Zend : applications web, MVC, PHP (cid:1) .NET : applications windows, app. Web, app. Mobiles; architecture basée sur des couches, langages: C++, C#, J#, VB.
4
Framework .Net
(cid:1) C’est un framework de Microsoft (cid:1) Version 1.0 (2002)(cid:1)Version 4.6.1 (2015) (cid:1) Le framework .net permet de développer:
(cid:1) Des applications windows classiques (cid:1) Des applications web Des applications web (cid:1) Des applications mobile (cid:1) Des services windows et des services web
(cid:1) Framework basé sur CLI (Common Language
Infrastructure) et CLR (Common Language Runtime)
5
Architecture .Net
6
Framework .Net (cid:1) Traditionnellement, la compilation d’un code source produit un
code binaire spécifique à un système d‘exploitation et un microprocesseur.
(cid:1) La compilation d’un programme .net (cid:1)code générique (indépendant de tout système logiciel ou hardware). (cid:1) A l’exécution, ce code (Common Intermediate Language) est confié à une machine virtuelle. Language) est confié à une machine virtuelle.
(cid:1) La MV traduit le code CIL en instructions spécifiques pour le
microprocesseur de la machine.
(cid:1) Traduction au fur et à mesure des besoins (compilateur JIT
(Just In Time)).
(cid:1) Pour exécuter une application sur plusieurs plateformes
logicielles et/ou matérielles, il suffit d‘obtenir la MV adéquate.
7
Framework .Net
8
Framework .Net
(cid:1) La MV est disponible pour tous les systèmes Windows (cid:1) Le projet Mono (cid:1)propose des MV pour Linux, MacOS,
SUN Solaris, OpenBSD, etc.
(cid:1) Avantage: Toutes les classes du Framework sont accessibles par tous les langages compatibles .net
9
La Base Class Library (cid:1) La BCL est une bibliothèque de classes (indépendante du langage de programmation) qui est hiérarchisée selon le Namespace : regroupement logique des classes.
(cid:1) Les classes sont extensibles (via le mécanisme d‘héritage) (cid:1) Les namespaces les plus utilisés:
(cid:1) System : le namespace racine de tous les types de données dans le framework (contient la classe Object: ancêtre de toutes les classes). framework (contient la classe Object: ancêtre de toutes les classes).
(cid:1) System.Windows : Les classes permettant de construire les interfaces
utilisateurs windows.
(cid:1) System.Web : Les classes nécessaires pour la création d’applications
Web.
(cid:1) System.Data: Les classes nécessaires pour l‘accès aux bases de
données.
(cid:1) System.Xml : Les classes nécessaires pour manipuler les documents
XML.
10
Visual Basic.Net
(cid:1) VB.net est un langage de programmation orienté objet. (cid:1) Evolution du langage VB :
(cid:1) VB 1.0 (1991) (cid:1)VB 3.0 (1993) : langage de programmation classique (cid:1) VB 4.0 (1995)(cid:1) VB 6.0 (1998) : grandes améliorations et très grand
succès de VB6.
(cid:1) VB.Net 2002 / VB.Net 2003 / VB.Net 2005 / VB.Net 2008 / VB.Net (cid:1) VB.Net 2002 / VB.Net 2003 / VB.Net 2005 / VB.Net 2008 / VB.Net 2010 (cid:1)La nouvelle génération qui suit le développement du Framework .Net
(cid:1) Tout programme VB.Net est compilé dans le même langage
intermédiaire (CIL) du Framework (C#, J#, C++, etc.). (cid:1) Le développement en VB.Net nécessite l‘EDI Visual
Studio.Net
11
Visual Studio.Net
(cid:1) Visual Studio.Net : L‘EDI incontournable de Microsoft : permet de développer des applications web (ASP.Net), des applications mobiles (windows mobile) et des applications windows.
(cid:1) Il permet l’utilisation des langages VB, VC++, VC# et VJ#
et assure à tous ces langages le partage des et assure à tous ces langages le partage des fonctionnalités offertes par le Framework .Net.
(cid:1) Version actuelle : Visual Studio 2015. (cid:1) Toutes les versions de Visual Studio sont payantes. (cid:1) Microsoft offre les versions Express qui sont gratuites. (cid:1) Il existe des versions Express gratuites et limitées
12
Microsoft Visual Basic Express 2010
13
Visual basic.Net
(cid:1) VB.net permet de créer différents types de projets:
(cid:1) Des applictions windows (Application windows forms) (cid:1) Des applications WPF (Windows Presentation Foundation): Utilisent XAML (eXtensible Application Markup Language) pour bénéficier du nouveau système d’affichage de windows vista et Windows 7. vista et Windows 7.
(cid:1) Des applications console : sans interface graphique. (cid:1) Des bibliothèques de classes (DLL) : utilisables dans d’autres
projets.
(cid:1) Lorsqu’un type de projet est choisi, les namespaces
nécessaires sont automatiquement ajoutés.
14
Les projets: Application windows forms (cid:1) Dans un projet "application windows", on peux avoir plusieurs
types de fichiers .vb: (cid:1) Des formulaires (interfaces, forms)
(cid:1) Les dessins des interfaces (les contrôles dans l‘interface : boutons, zones
de texte, listes, cases à cocher, etc.)
(cid:1) + Les procédures événementielles (locales) : associées aux événement
liés à chacun des contrôles de l‘interface liés à chacun des contrôles de l‘interface [+ des procédures et/ou des fonctions (locales) non événementielles].
(cid:1)
(cid:1) Des modules : utiles pour contenir les procédures et
fonctions dites "d’intérêt général" ainsi que les variables et/ou les objets "globaux". (cid:1)Touts les éléments d’un modules (procédures, fonctions, objets, variables) sont accessibles par n‘importe quel fichier form ou module du projet (pourvu qu‘ils soient "public"). (cid:1) Des classes : créer de nouvelles classes.
15
Les projets: Application windows forms
16
Chapitre 2 Chapitre 2
Eléments de base du langage Visual basic.Net
17
Les variables
(cid:1) Identifiant de variables:
(cid:1) Doit commencer par une lettre (cid:1) Caractères autorisés: lettres minuscules, lettres majuscules,
chiffres et "_".
(cid:1) Pas de distinction entre minuscules et majuscules (cid:1) Pas un mot réservé, sauf s‘il est encadré par [ ] (exemple: (cid:1) Pas un mot réservé, sauf s‘il est encadré par [ ] (exemple:
[for]). (cid:1) Toute variable doit être déclarée.
(cid:1) 2 familles de types de variables:
(cid:1) Types primitifs (cid:1) Types références (les objets)
18
Les types primitifs
19
Les types références
(cid:1) Type Object : type universel (cid:1) Type String : les chaines de caractères (cid:1) Types Nullables : les types références sont Nullabes
(NULL/Nothing) (cid:1)
Il arrive parfois que dans certaines circonstances une variable n’a pas de valeur bien définie (récupérée d‘une BD). de valeur bien définie (récupérée d‘une BD). (cid:1) Cette méthode permet aux variables de types primitifs de ne contenir aucune valeur. (cid:1)Utiliser '?' dans la déclaration. (Dim CodePostal ? as integer)
(cid:1) Déclaration de variables : Dim NomVariable1[,NomVariable2,NomVariableN] [As Type] Option Explicit Off (cid:1)rend la déclaration facultative (déconseillée)
20
Déclaration de variables (cid:1) Si le type est omis (cid:1)type par défaut Object (cid:1) Toute variable est initialisée par une valeur par défaut:
(cid:1) Types numériques : 0 (cid:1) Chaine de caractères : "" chaine vide (cid:1) Boolean : false (cid:1) Object : null (cid:1) Object : null Inférence de type : type déterminé à partir de la valeur initialisant la variable (Dim ch="Bonjour") (cid:1)ch : String
(cid:1)
(cid:1)L‘inférence ne fonctionne qu’avec les variables locales à une fonction
ou procédure. (Option Infer On par défaut)
(cid:1)Initialisation sur la même ligne que la déclaration, sinon type :
Object.
(cid:1) variable non statique (Static Dim ch="abc")(cid:1)type : Object
21
Modificateurs d‘accès aux variables (cid:1) Public:
(cid:1)
Éléments accessibles de n’importe quelle portion de code du projet dans lequel ils sont déclarés et de n’importe quel autre projet référençant celui dans lequel ils sont déclarés.
(cid:1) Ne peut pas être utilisé pour la déclaration à l’intérieur d’une procédure ou fonction.
(cid:1) Protected:
(cid:1) Utilisable uniquement à l’intérieur d’une classe. La variable est accessible par le code de la
classe et le code de toutes les classes héritant de celles-ci.
(cid:1) Friend:
(cid:1) (cid:1)
Les éléments seront accessibles de l’assemblage dans lequel ils sont déclarés. Les éléments seront accessibles de l’assemblage dans lequel ils sont déclarés. (cid:1) Ce mot clé ne peut pas être utilisé à l’intérieur d’une procédure ou fonction.
(cid:1) Protected friend:
(cid:1) Ce niveau d’accès est l’union des niveaux d’accès Protected et Friend. (cid:1)
Il rend visible la variable à l’ensemble de l’assemblage dans lequel elle est déclarée et à toutes les classes héritant de celle où elle est déclarée.
(cid:1) Private: (par défaut)
(cid:1) Ce mot clé restreint l’accès à la variable au module, à la classe ou à la structure dans
laquelle elle est déclarée. Il ne peut pas être utilisé à l’intérieur d’une procédure ou fonction.
(cid:1)Ces modificateurs remplacent Dim dans la déclaration
(cid:1)
22
Les constantes
(cid:1) Const nomVariable=valeur (cid:1) Constantes vb prédéfinies les plus utilisées:
Nom de la constante
Valeur de la constante
vbCr
vbLf vbLf
vbCrLf
Retour chariot (caractère n°13)
Saut de ligne (caractère n°10) Saut de ligne (caractère n°10)
Combinaison retour chariot+saut de ligne
vbNullChar
Caractère Null (caractère n°0)
vbTab
vbBack
Tabulation (caractère n°9)
Retour arrière (caractère n°8)
23
Les tableaux
(cid:1) Tableau à une seule dimension :
Dim nom_tab (const_int) as type
(cid:1)const_int : l’indice de la dernière case du tableau (cid:1)nom_tab contient (const_int+1) éléments (cid:1)Type : tout type dans VB.Net (y compris les objets) (cid:1)Type : tout type dans VB.Net (y compris les objets) (cid:1)1ère case : indice 0 (cid:1)nom_tab(0)=4 (cid:1) Tableau à 2 dimensions :
Dim nom_tab (const_int1, const_int2) as type
Publicité
(cid:1)Accès : nom_tab(i,j)
24
Les tableaux (cid:1) Les tableaux sont des objets :
(cid:1) Length (propriété) : taille du tableau (pour les tab à 2 dim,
length donne le nombre d‘éléments). x = t.Length
(cid:1) GetLength(dim) : méthode qui donne la taille de la dimension
dim d‘un tableau à plusieurs dimensions.
x = mat.GetLength(0) x = mat.GetLength(0) y = mat.GetLength(1)
(cid:1) Rank (prop) : donne le nombre de dimensions d’un tableau
nb_dim=mat.Rank (cid:1)nb_dim : 2
(cid:1) Classe Array :
(cid:1)
Ind=Array.IndexOf (tab,elt)
(cid:1) Array.Sort(tab)
25
Les tableaux (cid:1) Redimensionner un tableau : Il est possible de
redimensionner des tableaux au moment de l’exécution avec les instructions : (cid:1) Redim : Dans ce cas, toutes les anciennes valeurs seront perdues
Exemple : Redim Test(30)
(cid:1) Redim Preserve : Dans ce cas, on préserve toutes les données
Exemple : Redim Preserve Test(30) Exemple : Redim Preserve Test(30) (cid:1) Déclaration dynamique : a. Dim nom_tableau ( ) as type b. Dès qu’on saisit le nbr d’éléments et avant la 1ère utilisation du tableau :
Redim nom_tableau (nbr) as type
c. Utiliser le tableau
26
Les chaînes de caractères
(cid:1) Les chaînes de caractères sont des objets de type String.
(cid:1) Deux moyens pour manipuler les chaines:
(cid:1) Utiliser des fonctions de VB classique (déconseillé) Utiliser les propriétés et méthodes de la classe System.String: (cid:1) Utiliser les propriétés et méthodes de la classe System.String:
27
Les chaînes de caractères
Exemples: Dim ch as String = "Cours VB.net" • ch.chars(i) (cid:1)retourne ch(i) • ch.Length (cid:1)retourne la longeur de ch • ch.Substring(ind_deb,nb_car) (cid:1)retourne la souschaine de longeur
nb_car extraite à partir de l‘indice ind_deb.
• ch1.Equals(ch2) (cid:1)retourne true si ch1=ch2, false sinon • ch1.CompareTo(ch2) (cid:1)retourne un entier <0 (ch1<ch2); >0 • ch1.CompareTo(ch2) (cid:1)retourne un entier <0 (ch1<ch2); >0
(ch1>ch2); 0 (ch1=ch2). (ch1>ch2); 0 (ch1=ch2).
• ch1.Insert(pos, ch2) (cid:1)insert ch2 dans ch1 à l‘indice • ch.TrimStart( ) / ch.TrimEnd( ) / ch.Trim( )(cid:1)enlève les espaces • ch.ToUpper( ) / ch.ToLower( ) (cid:1)majuscule / minuscule • ch1.IndexOf(ch2[,ind]) (cid:1)recherche ch2 dans ch1 [à partir de
• ch.Replace(str1,str2) (cid:1)remplace dans ch toute occurence de str1
l‘indice ind]
par str2
28
Les enregistrements (structures) (cid:1) Les structures permettent de regrouper des données de différents
types
(cid:1) Déclaration :
Public Structure nom_str public champ1 as type1 public champ2 as type2 ... End structure End structure
(cid:1) Champi : variable de tout type, structure, fonction ou procédure. (cid:1) Utilisation : dim v as nom_str (cid:1) Accès aux champs d’une variable de type structure :
v.champ1=…v.champ2=... ...
(cid:1) Les structures ne sont pas des types « référence »
nom_str1=nom_str2 (cid:1)copie les champs et non pas les adresses des structures.
29
Exemple 1 : Utilisation d’une structure
1. Déclaration de la structure
2. Déclaration d’une variables de type la structure 2. Déclaration d’une variables de type la structure
déclarée
3. Affectation de valeurs aux données membres
30
Exemple 2
Private Structure employee
Public givenName As String Public familyName As String Public phoneNumber As Long Private salary As Double Public Sub giveRaise(ByVal raise As Double)
salary = raise
End Sub Public Function salaryemployee() As Double Public Function salaryemployee() As Double
Return salary
End Function
End Structure *****************************************************
Dim emp As employee emp.givenName = "Mohamed" emp.familyName = "Ben ali" emp.giveRaise(200) Console.WriteLine(CStr(emp.salaryemployee()))
31
Les opérateurs
(cid:1) Opérateur d‘affectation : = (qque soit le type) (cid:1) Les opérateurs arithmétiques :
Opérateur
Opération réalisée
+
- -
*
/
\
Mod
^
Addition
Soustraction Soustraction
Multiplication
Division
Division entière
Modulo (reste de la division entière)
Puissance
32
Les opérateurs Les opérateurs de comparaison
Opérateur Opération réalisée
Exemple
Résultat
=
<>
<
>
<=
>=
Like
Is
Égalité
inégalité
Inférieur
Supérieur
Inférieur ou égal
Supérieur ou égal
Égalité de chaînes de caractères
2=5
2<>5
2<5
2>5
2<=5
False
True
True
False
True
2>=5 False “toto” like“t*” True
Comparaison de deux variables objets O1 Is O2
True si O1 et O2 font référence au même objet
True si O1 ne fait pas référence au même objet que O2
IsNot
Comparaison de deux variables Objets
O1 IsNot O2
TypeOf... Is… Comparaison du type de la variable avec le type donné
TypeOf O1 IS Client
True si O1 fait référence à un objet céé à partir du type Client
33
Les opérateurs Les opérateurs logiques
Opérateur
Opération
Exemple
Résultat
And
Or
Xor Xor
Not
Et logique
If (test1) And (test2)
True si test 1 et test2 sont True
Ou logique
If (test1) Or (test2)
True si test 1 ou test2 est True
Ou exclusif Ou exclusif
If (test1) Xor (test2) If (test1) Xor (test2)
True si test 1 ou test2 est True True si test 1 ou test2 est True mais pas si les deux sont True
Négation
If Not test
Inverse le résultat du test
AndAlso
ET logique
If (test1) AndAlso (test2)
OrElse
Ou logique
If (test1) OrElse (test2)
Idem ‘ET logique’ mais test2 ne sera évalué que si test1 est True
Idem ‘OU logique’ mais test2 ne sera évalué que si test1 est Faux
34
Les opérateurs (cid:1) Les opérateurs de concaténation : & et + (déconseillé) (cid:1) Problèmes liés à l‘opérateur + :
(cid:1) Si les deux opérandes sont numériques, alors il y a addition. (cid:1) Si les deux opérandes sont de type String alors il y a concaténation. (cid:1) Si un opérande est numérique et le deuxième est de type String
alors un autre paramètre entre en jeu : Si le compilateur est configuré avec l’option Strict On une erreur de (cid:1) Si le compilateur est configuré avec l’option Strict On une erreur de compilation est générée.
(cid:1) Si le compilateur est configuré avec l’option Strict Off, la chaîne de
caractères est implicitement convertie en type Double puis additionnée. Si la chaîne de caractères ne peut pas être convertie en Double alors une exception est générée.
(cid:1) Pour accéder aux options de compilations :
(cid:1) Sélectionner un projet (cid:1)menu Projet (cid:1)menu Propriétés (cid:1)onglet
compiler
35
Conversion des types de données
36
Les instructions de base
(cid:1) Affichage :
(cid:1) Console.writeline(message )
(cid:1) Message : chaine de caractères entre " "
Lecture (cid:1) Lecture (cid:1) Var=Console.readline()
Publicité
37
Les structures de contrôle Les structures de contrôle
38
Les structures conditionnelles 1. If condition then instruction1 ... Else Instruction j ... End If
<expressions> : <expressions> : - Entière - Réelle - Booléenne - Chaine de caractères
2. Select case <expression> 2. Select case <expression>
case val1 bloc instruction 1 case val2 bloc instruction 2 ... case Else bloc instruction else End Select
39
Les structures conditionnelles (cid:1) Exemples : Select case reponse case "oui","OUI" console.writeline("reponse
positive")
case "non","NON" console.writeline("reponse console.writeline("reponse
negative")
case else Console.writeline("reponse de
normand")
End select
Select case heure Case 8,9,10,11,12 Console.writeline("Matin") Case 13 to 18 Console.writeline("après-midi") Case 19 to 22 Case 19 to 22 Console.writeline("soir") Case is >=22 Console.writeline("nuit") Case else Console.writeline("heure
invalide")
40
End select
Les structures itératives
1. For Compteur=valeur initiale To valeur Finale [Step pas]
Bloc d‘instructions
Next
2. For each element in Collection 'Collection peut être un
tableau tableau
Bloc d‘instructions
Next
3. While condition
Bloc d‘instructions
End While
41
Les structures itératives 1. Do While condition
Bloc d‘instructions
Loop
2. Do until condition
Bloc d‘instructions
Loop Loop
3. Do
Bloc d‘instructions Loop While condition
4. Do
Bloc d‘instructions
Loop until condition
42
Procédures et fonctions Procédures et fonctions
43
Procédures
1. Procédure [Static] [Private | Public] Sub nom_Sub ([Liste_paramètres])
Bloc d’Instructions
End Sub
(cid:1) Appel :
nom_sub [p1, p2, ..., pn]
Ou
Call nom_sub ([p1, p2, ..., pn])
44
Fonctions
2. Fonction [Static] [Private | Public] Function nom_function
([Liste_paramètres]) As type Bloc d’instruction return res ‘ou bien nom_function = var
End Function End Function
(cid:1) Appel : varRes = nom_fonction ([p1, p2, ..., pn])
45
Passage de paramètres (cid:1) Pour chaque paramètre d’une fonction ou procédure,
il faut spécifier : (cid:1) Le mode de passage (par valeur ou par référence) (cid:1) Le nom (cid:1) Le type
(cid:1) Mode de passage de paramètres par valeur : ByVal (cid:1) Mode de passage de paramètres par référence : ByRef
(cid:1) Par défaut : c’est ByVal (cid:1) Exemple :
public Sub minMaxTab (ByVal T( ) as integer, ByRef min as integer, ByRef
max as integer)
... End sub
46
Procédures événementielles
(cid:1) Les procédures événementielles indiquent :
(cid:1) L’élément de la feuille (form) déclenchant l’événement (cid:1) L’événement déclencheur (cid:1) Les actions (le code) à faire lorsque l‘événement est déclenché
(cid:1) Sa syntaxe :
Private Sub cmdOK_Click (ByVal sender As Private Sub cmdOK_Click (ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles cmdOK.Click 'Corps de la procédure événementielle End Sub
(cid:1) L’exécution de la procédure se fera automatiquement quand
l’utilisateur clique sur le bouton ayant la propriété name=cmdOK.
47
Boîtes de dialogue Boîtes de dialogue
48
Boîte de saisie
(cid:1) Permet à l’utilisateur de saisir une chaîne de caractères. (cid:1) InputBox : 3 paramètres:
(cid:1) Texte dans la boite (la question à afficher à l‘utilisateur) (cid:1) Le titre de la boîte (cid:1) Valeur par défaut du texte (cid:1) Exemple : Dim resultat as String
resultat = InputBox("Veuillez saisir votre nom", "identification", "votre nom")
Si Cancel alors resultat (cid:2)chaine vide
49
Boîte de message (cid:1) Permet d’afficher une information à l’utilisateur en lui donnant la possibilité de répondre (par des boutons).
(cid:1) MessageBox.show : 3 paramètres:
(cid:1) Texte dans la boite (Le message ou question à afficher à
l’utilisateur)
(cid:1) Le titre de la boîte (cid:1) Le titre de la boîte (cid:1) Les boutons à mettre dans la boite :
(cid:1) MessageBoxButtons.OK |OKCancel | AbortRetryIgnore |
YesNOCancel | YesNo | RetryCancel
(cid:1) L‘icône de la boîte :
(cid:1) MessageBoxIcon.Information|Exclamation|Error|Question|Hand
(cid:1) Bouton par défaut :
(cid:1) MessageBoxDefaultButton.Button1|Button2|Button3
50
Boîte de message Dim rep As Integer rep=MessageBox.Show("Voulez vous enregistrer en quittant l’application", "Fin de programme", MessageBoxButtons.YesNoCancel, _ MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)
(cid:1) rep recevra : DialogResult.OK| DialogResult.Cancel |
DialogResult.Abort | … DialogResult.Abort | … (cid:1) 1 si OK (cid:1) 2 si Cancel (cid:1) 3 si Abort (cid:1) 4 si Retry (cid:1) 5 si Ignore (cid:1) 6 si Yes (cid:1) 7 si No
51
Chapitre 3 Chapitre 3
Les contrôles de Visual basic.Net
52
Les contrôles VB.Net (cid:1) Les contrôles permettent de créer les interfaces (feuilles, formulaires)
d‘une application.
(cid:1) Chaque contrôle est représenté par une classe (cid:1) Les contrôles sont accessibles via la boîte à outils (cid:1) La majorité des contrôles dérivent de la classe Control (cid:1) Quelques propriétés héritées :
(cid:1) Position et taille : (cid:1) Position et taille :
ctrl.left|top|width|height=int 'ou bien ctrl.location=new Point(int,int) ' left,top 'ctrl.size=new Size(int,int) ' width,height
(cid:1) Apparence :
ctrl.backcolor=System.Drawing.color.Yellow ctrl.forecolor=System.Drawing.color.Yellow ctrl.font = New Font(System.Drawing.FontFamily.Genericserif,
16)
ctrl.backgroundImage = new Bitmap("open.bmp")
53
Les contrôles VB.Net
54
Les familles de contrôles
(cid:1) Contrôles d‘affichage
(cid:1)
label, linkLabel, toolTip, errorProvider, notifyIcon, helpProvider, progressBar
(cid:1) Contrôles d’édition de texte
(cid:1)
textBox, maskedTextBox, richTextBox (cid:1) Contrôles de déclenchement d’actions (cid:1) Contrôles de déclenchement d’actions
(cid:1) button, menuStrip, contextMenuStrip, toolStrip, toolStripContainer
(cid:1) Contrôles de sélection
(cid:1)
checkbox, radioButton, listBox, numericUpDown, trackBar, domainUpDown, chekckedListBox, comboBox, treeView, listView
(cid:1) Contrôle de regroupement
(cid:1)
groupbox, panel, tabControl, splitContainer, flowLayoutPanel, tableLayoutPanel
55
Les familles de contrôles
(cid:1) Contrôles graphiques (cid:1) pictureBox, ImageList
(cid:1) Contrôles de gestion du temps
(cid:1) dateTimePicker, monthCalendar, timer, backgroundWorker,
56
Propriétés des contrôles
(cid:1) La définition des propriétés des objets utilisés dans l’interface = affectation des valeurs aux propriétés des contrôles utilisés dans cette interface.
(cid:1) La fenêtre "Propriétés" permet de réaliser cette tâche de manière facile réaliser cette tâche de manière facile (mode création)
(cid:1) Il est possible de modifier les valeurs des propriétés en mode exécution (par du code source).
57
Propriétés des contrôles (cid:1) Chaque contrôle possède une propriété NAME (cid:1) On prend comme convention: préfixer les noms des contrôles
par 3 lettres qui permettent de reconnaître son type : (cid:1) Form : frm (cid:1) CommandButton : cmd (cid:1) CheckBox : chk (cid:1) Label : lbl (cid:1) Label : lbl (cid:1) Menu : mnu (cid:1) OptionButton : opt (cid:1) TextBox : txt (cid:1) ComboBox : cmb (cid:1) ListBox: lst (cid:1) Frame: fra (cid:1) Etc.
58
Les contrôles d’affichage (cid:1) Label
(cid:1) name : lbl… (cid:1)
text : contenu (ce qui est affiché)
(cid:1) autosize : (T,F) détermine si le contrôle doit être automatiquement
redimensionné pour s’adapter au contenu. font (en mode création)
(cid:1)
ou (en mode exécution)
lblNom.font.bold lblNom.font.size lblNom.font.name lblNom.font.italic etc.
59
Les contrôles d’affichage
(cid:1) LabelLink
(cid:1) name : lnk… (cid:1) Hérite toutes les
propriétés du contrôle label
(cid:1) Permet de gérer des (cid:1) Permet de gérer des
liens
(cid:1) LinkArea : la partie du label qui activera le lien
(cid:1) Evt : linkClicked ( )
60
Les contrôles d’affichage
(cid:1) ToolTip (cid:1) Contrôle invisible : permet d’ajouter à chaque contrôle de la feuille une propriété tooltip sur tooltipx (texte de l’info-bulle)
(cid:1) name : tlp… (cid:1) AutoPopDelay : durée d‘affichage de l‘infobulle en ms.
61
Les contrôles d’affichage
Publicité
(cid:1) ErrorProvider (cid:1) Contrôle invisible : utile lors de la validation des données
d‘un formulaire (cid:1) name : err… (cid:1) Il faut appeler la méthode SetError en spécifiant le nom (cid:1) Il faut appeler la méthode SetError en spécifiant le nom
du contrôle qui pose problème et le texte affiché de l’infobulle associée au contrôle.
(cid:1) S’il n’y a pas d’erreur, il faut réinitialiser le texte pour faire disparaître l’icône du contrôle ErrorProvider.
62
Les contrôles d’affichage
(cid:1) Exemple :
If Not IsNumeric(TextBox1.Text) Then errP1.SetError(TextBox1, " Valeur numérique Obligatoire ") Else errorP1.SetError(TextBox1, "") End If End If
63
Les contrôles d’édition de texte (cid:1) TextBox
(cid:1) Permet la saisie d‘information (cid:1) name : txt… (cid:1)
text : le texte dans la zone de texte
(cid:1) Autosize (T|F) (cid:1) maxlength : longueur max du texte (cid:1) passwordChar : spécifie un caractère pour cacher le texte passwordChar : spécifie un caractère pour cacher le texte (cid:1) characterCasing : normal|upper|lower (cid:1) multiline : (T|F) texte sur une seule ou plusieurs lignes (cid:1) wordwrap (T|F): indique si le retour à la ligne se fait
automatiquement lorsqu‘on atteint la fin de la zone de texte multiligne scrollbars : none|horizontal|vertical|both : affiche des barres de défilement dans la zone de texte multiligne selectedText : récupère le texte sélectionné
(cid:1)
(cid:1)
64
Les contrôles d’édition de texte
(cid:1) MaskedTextBox
(cid:1) Permet la vérification automatique des informations saisies (cid:1) name : mtxt… (cid:1) Mask : détermine le format des infos qui vont être saisies : on peut choisir un mask existant ou configurer son propre mask.
65
Les contrôles d’édition de texte (cid:1) Caractères spéciaux
(cid:1) 0 : un chiffre obligatoire (0 à 9) (cid:1) 9 : un chiffre ou un espace optionnel (cid:1) L : une lettre obligatoire (de a à z ou A à Z). (cid:1) ? : une lettre optionnelle. (cid:1) C : un caractère quelconque (cid:1) . : le séparateur décimal (cid:1) , : le séparateur des milliers (cid:1) , : le séparateur des milliers (cid:1) : : le séparateur horaire (cid:1) / : le séparateur de date (cid:1) $ : le symbole monétaire (cid:1) < les caractères suivants seront transformés en minuscules. (cid:1) > les caractères suivants seront transformés en majuscules (cid:1) | annule l’effet des deux caractères > et < (cid:1) \ caractère d’échappement faisant perdre sa signification spéciale au caractère
suivant
(cid:1) Tous les autres caractères sont affichés tels qu‘ils sont dans le contrôle.
66
Les contrôles de déclenchement d’actions
(cid:1) Button
(cid:1) name : cmd… (cid:1) text : le texte du bouton de commande (cid:1) enabled : (T|F) indique si le bouton est activé ou pas. (cid:1) visible : (T|F) (cid:1) Les propriétés acceptButton et cancelButton d‘un Les propriétés acceptButton et cancelButton d‘un formulaire (objet form): (cid:1) Pour associer la touche Enter à un click d’un bouton cmdB1 (cid:1)
acceptButton (cid:2)cmdB1
(cid:1) Pour associer la touche Esc à un click d’un bouton cmdB2
(cid:1)cancelButton (cid:2)cmdB2
67
Les contrôles de déclenchement d’actions
(cid:1) MenuStrip
(cid:1) name : mnu… (cid:1) Permet de créer des menus avec des sous-menus
(cid:1) ShortCutKeys
68
Les contrôles de déclenchement d’actions
(cid:1) ToolStrip
(cid:1) name : tls… (cid:1) Permet de créer une barre d‘outils. (cid:1) Contient un assistant pour générer automatiquement une barre d’outils avec toutes les fonctionnalités de base d’une application. application.
(cid:1)cliquer sur la petite flèche présente sur la droite du contrôle
et choisir l’option Ajouter des éléments standard.
(cid:1)Pas de code généré pour les clicks sur ces différents boutons: il
faut écrire le code.
69
Les contrôles de sélection
(cid:1) Checkbox (choix multiple)
(cid:1) name :chk… (cid:1) text : le texte affiché à coté de la case (cid:1) checked : (T|F) indique l’état de la case à cocher (T:
sélectionnée)
(cid:1) threeState : (T|F) T: la case possède 3 états (sélectionnée, (cid:1) threeState : (T|F) T: la case possède 3 états (sélectionnée,
non sélectionnée, indéterminé)
70
Les contrôles de sélection
(cid:1) RadioButton (choix exclusif)
(cid:1) name :opt… (cid:1) text : le texte affiché à coté de l‘option (cid:1) checked : (T|F) indique l’état de la case à cocher (T:
sélectionnée)
NB. Si on avait un autre ensemble de boutons radio concernant NB. Si on avait un autre ensemble de boutons radio concernant l‘étage(rdc, 1er Et, 2ème Et), il faut les placer dans un contrôle Panel pour pouvoir sélectionner le nombre de pièces et l‘étage simultanément.
71
Les contrôles de sélection (cid:1) ListBox
(cid:1) name : lst… (cid:1) Liste à choix multiples (cid:1) Les éléments de la liste sont des chaînes de caractères. (cid:1)
items: permet de remplir la liste (les éléments constituent une collection appelée Items) sorted : (T|F) liste triée ou pas sorted : (T|F) liste triée ou pas selectionMode : (none|one|multiSimple|multiExtended)
(cid:1) (cid:1)
(cid:1)
(cid:1) Méthodes :
(cid:1)
(cid:1)
(cid:1)
(cid:1)
(cid:1)
lstNbPieces.items.add("s+0") lstNbPieces.items.insert(ind,element) lstNbPieces.items.removeAt(ind) lstNbPieces.items.clear() ind=lstNbPieces.findString("elt")
72
Permet d‘utiliser les touches shift et Ctrl pour la sélection
Les contrôles de sélection (cid:1) ListBox (cid:1) Dans le cas d’une sélection simple (one):
(cid:1)
(cid:1)
selectedIndex : retrourne l’indice de l‘élément sélectionné de la collection Items selectedItem: retrourne l’élément sélectionné de la collection Items
Dans le cas d‘une sélection multiple : (cid:1) Dans le cas d‘une sélection multiple : (cid:1)
selectedIndices: retourne une collection contenant les indices des éléments sélectionnés. slectedItems: retourne une collection contenant les éléments sélectionnés.
(cid:1)
(cid:1)Il faut parcourir les listes pour avoir les éléments:
Dim o As Object For Each o in lstNbPieces.SelectedItems System.Console.WriteLine(o) Next
73
Les contrôles de sélection (cid:1) CheckedListBox
(cid:1) Amélioration du contrôle listBox (cid:1) Les cases sont cochées indépendamment de la sélection (cid:1) Récupération des cases cochées: collection checkedItems For Each elt In CheckedListBox1.CheckedItems Console.WriteLine(elt.ToString) Next Next
Ou bien
For i = 0 To CheckedListBox1.Items.Count - 1 If CheckedListBox1.GetItemChecked(i) = true Then Console.WriteLine(CheckedListBox1.Items(i)) End If Next
74
Les contrôles de sélection (cid:1) ComboBox
(cid:1) name : cmb… (cid:1) Liste à choix unique (cid:1) Association entre listBox et textBox : l’utilisateur peut choisir ou
simple
saisir une option.
(cid:1) dropDownStyle : (simple|dropDown|dropDownList)(cid:1)indique le
mode de fonctionnement du comboBox mode de fonctionnement du comboBox (cid:1) Simple : liste affichée en permanence: l‘utilisateur choisit ou saisit une
valeur
(cid:1) Dropdown : liste affichée à la demande (cid:1) Dropdownlist : l‘utilisateur ne peut plus saisir text : pour récupérer la valeur choisie ou saisie selectedIndex : l‘indice de l’élément sélectionné (cid:1) -1 quand l‘utilisateur saisit une valeur
dropdown
(cid:1)
(cid:1)
75
Les contrôles de sélection
(cid:1) TreeView
(cid:1) name : trv… (cid:1) Affichage d’éléments sous une forme arborescente (cid:1) nodes : collection qui contient tous les nœuds du 1er niveau.
Chaque nœud dispose aussi d‘une collection nodes qui contient ses nœuds enfants, etc. contient ses nœuds enfants, etc.
76
Les contrôles de sélection (cid:1) TreeView
(cid:1)
Editeur treeView
(cid:1) Avec du code :
Dim noeud, noeud2 As TreeNode noeud = New TreeNode("Twingo") noeud2 = New TreeNode("307") TreeView1.Nodes(1).Nodes.Add(noeud) 'ajoute twingo sous Renault TreeView1.Nodes(0). Nodes.RemoveAt(0) 'supprime la 206 TreeView1.Nodes(0). Nodes.insert(0,noeud2) 'insère 307 sous Peugeot
77
Les contrôles de sélection
(cid:1) TreeView
(cid:1) Quand on travaille avec treeView, on a besoin de savoir sur quel élément l’utilisateur a cliqué(cid:1)événement afterSelect
Private Sub TreeView1_AfterSelect (ByVal sender As System.Object, ByVal e As _ System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
Select Case e.Node.Text Case "Peugeot" System.Console.WriteLine("Peugeot") Case "Renault" System.Console.WriteLine("Renault") Case "Opel" System.Console.WriteLine("Opel") End Select
End Sub
78
Exemple : Lister le contenu d’un répertoire
Public Class Form3
Private Sub TV_AfterExpand (ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs)
Handles TV.AfterExpand
Dim tn As TreeNode
For Each tn in e.Node.Nodes
Explorer(tn)
Next
End Sub
Private Sub Explorer (ByVal n As TreeNode) Private Sub Explorer (ByVal n As TreeNode)
Dim s As String
n.Nodes.Clear()
For Each s in Directory.GetDirectories(n.FullPath)
n.Nodes.Add(Path.GetFileName(s))
Next
End Sub
Private Sub btnAfficher_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
btnAfficher.Click
TV.Nodes.Add("C:\")
Explorer(TV.Nodes.Item(0))
End Sub End Class
79
Les contrôles de regroupement
(cid:1) GroupBox
(cid:1) Permet le regroupement logique et visuel
de contrôles
(cid:1) Possède une bordure et une légende
(propriété Text) (cid:1) Permet d’isoler des groupes de radioButtons Permet d’isoler des groupes de radioButtons
(cid:1) Panel
(cid:1) Même principe que GroupBox mais sans légende et invisible
(par défaut)
(cid:1) borderStyle : (none|fixedSingle|fixed3D)
80
Les contrôles de regroupement
(cid:1) TabControl
(cid:1) Permet l‘utilisation des onglets (tabs) (cid:1) Chaque onglet est considéré comme une feuille à part sur laquelle on peut placer nos contrôles. tabpages : collection qui contient tous les onglets du contrôle. du contrôle.
(cid:1)
Editeur tabPages
81
Les contrôles graphiques
(cid:1) PictureBox
(cid:1) Permet l‘utilisation des images (bmp, gif, ico, wmf, jpg) Image (prop.) : indique le contenu du contrôle (cid:1)
(cid:1) Avec le code : PictureBox1.Image = Image.FromFile("titi.gif") PictureBox1.Image = nothing 'pour supprimer l‘image PictureBox1.Image = nothing 'pour supprimer l‘image
Editeur PictureBox
82
Les contrôles graphiques
(cid:1) ImageList
(cid:1) Permet de stocker des images (bmp, gif, ico, jpg) (cid:1) Contrôle invisible au moment de l‘exécution (cid:1) Le contrôle sera utilisé avec tout contrôle possédant une propriété
ImageList, smallImageList ou largeImageList ( ListView,TreeView) Pour ces contrôles, la propriété imageIndex indique l‘indice de l‘image (cid:1) Pour ces contrôles, la propriété imageIndex indique l‘indice de l‘image (dans