Introduction to .NET Environment and Visual Basic.Net

1/88
100%
Rendu du PDF...
Page 1 sur 88Lecteur de document UniversityLib

Introduction to .NET Environment and Visual Basic.Net

Programming and Software Development · lab

Voir tous les documents en programmation

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