28
Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

Embed Size (px)

Citation preview

Page 1: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

Cours VB 2007/2008 1

Chapitre 3

Les contrôles en VB et le contrôle de la saisie

Page 2: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

2 Cours VB – ISG 2007/2008

Introduction

Les étapes de programmation sont: La création de l’interface La définition des propriétés des objets

utilisés dans l’interface L’écriture du code (associé à chaque

objet) On peut inclure d’autres étapes :

La compilation et l’exécution Le débogage La création d’un fichier exécutable La distribution de l’application

Page 3: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

3 Cours VB – ISG 2007/2008

I. Types de contrôles

Les contrôles figurent dans la boite à outils.

CheckBox

ComboBoxHScollBa

r

Frame

Shape

Label

PictureBox

OptionButton

TextBox

CommandButton

VScollBar

ListBox

Line

Page 4: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

4 Cours VB – ISG 2007/2008

I. Types de contrôles

Les contrôles d’affichage et de saisie de texte

Affichage : contrôle étiquette ou Label Zone texte : contrôle Textbox

Les contrôles offrant des choix à l’utilisateurs

Contrôle case à cocher (CheckBox) Contrôle bouton d’option (OptionButton) Zone de liste (ComboBox, ListBox) Barre de défilement (VScrollBar,

HScrollBar) vertical ou horizontal

Les contrôles bouton de commande (CommandButton) pour exécuter une action.

Page 5: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

5 Cours VB – ISG 2007/2008

I. Types de contrôles

Les contrôles d’affichage d’images et de graphiques

Les contrôles zone image (PictureBox) Les contrôles forme (Shape) Les contrôles ligne (Line)

Les contrôles cadre (Frame)

Page 6: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

6 Cours VB – ISG 2007/2008

II. Définition des valeurs des propriétés des contrôles

La définition des propriétés des objets utilisés dans l’interface est l’affectation des valeurs aux propriétés des contrôles utilisés dans cette interface.

La fenêtre propriété permet de réaliser cette tache de manière facile (mode création)

Il est possible de modifier les valeurs des propriétés en mode exécution.

Parmi les propriétés intéressantes on trouve Name qui désigne le nom de l’objet par lequel il sera reconnu.

Page 7: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

7 Cours VB – ISG 2007/2008

II. Définition des valeurs des propriétés des contrôles

On prend comme convention préfixer les noms par 3 lettres qui permettent de reconnaître sa classe :

Form : FRM CommandButton : CMD CheckBox : CHK Label : LBL Menu : MNU OptionButton : OPT TextBox : TXT ComboBox : CMB ListBox: LST Frame: FRA

Page 8: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

8 Cours VB – ISG 2007/2008

III. Les propriétés des contrôles

III.1 Label name : lbl… caption : contenu autosize : détermine si un contrôle doit

être automatiquement redimensionné pour l’adapter à son contenu. Si la valeur de la propriété est True, le contrôle label change horizontalement pour s’adapter à son contenu

wordwrap : permet de modifier le contrôle label verticalement pour l’adapter à son contenu sans modifier sa largeur

alignment : 0 (left) / 1 (right) / 2 (center)

visible : T / F font (en mode création) ou fontsize,

fontname, fontbold, fontitalic (en mode exécution)

Page 9: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

9 Cours VB – ISG 2007/2008

III.1 Label

Rq : autosize doit être égale à true pour que la propriété wordwrap du contrôle label soit active mais il faut mettre wordwrap à true avant autosize sinon le texte s'agrandie en largeur avant. La longueur de ce contrôle n’est agrandie que si la taille d’un mot dépasse celle du contrôle.

Page 10: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

10 Cours VB – ISG 2007/2008

III.2 TextBox

name : txt… text : contenu causesValidation : true (par défaut) / false (pour

le contrôle de saisie avec l’événement _validate) multiLine : true (si le texte sur plusieurs lignes le

retour à la ligne sera géré automatiquement) / false (par défaut le texte est sur une seule ligne)

maxLength : pour fixer la taille de la zone texte alignment : 0 (left) / 1 (right) / 2 (center) scrollBars : 0 (none) / 1 (horizontal) / 2 (vertical) /

3 (both) locked: T/ F: détermine si un cltl peut être

modifié ou non visible : T / F font (en mode création) ou fontsize, fontname,

fontbold, fontitalic (en mode exécution) PasswordChar : permet de définir le caractère

qui remplacera les caractères tapés par l'utilisateur

Page 11: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

11 Cours VB – ISG 2007/2008

III.3 ComboBox (pour choix exclusifs)

name : cmb… text : le contenu initial list : pour la liste des info dans le ComboBox style : Les Combobox sont modifiables par

défaut : 0 : DropdownCombo - modifiable (sert

dans la recherche) 1 : SimpleCombo - le style est différent

mais ressemble à 0 2 : DropdownList - non modifiable (si on

prend les valeurs à partir d’un BD)

Page 12: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

12 Cours VB – ISG 2007/2008

III.3 ListBox (pour les choix multiples)

name : lst… list : pour la liste des info dans la Listbox multiSelect : none / multiple (avec ctrl) /

extended (sans ctrl) Exemple ce code affiche les éléments

sélectionnés dans une ListBox:

for i=0 to lstspecialite.listcount -1 if lstspecialite.selected (i) then MsgBox lstspecialite.list(i) End if next

Page 13: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

13 Cours VB – ISG 2007/2008

III.4 OptionButton (pour les choix exclusifs)

name : opt… value : (true, false) caption : label du ListBox  index : sert pour les groupes

Remarque 1: Par défaut il faut avoir au moins un des boutons d’option qui soit sélectionné exemple si optionbutton centré activé il faut que le texte soit centré)INDEX as integer

Remarque 2: Pour la commodité de nomination on peut nommer les boutons de commande d’un même groupe du même nom (NAME) exemple optspecialité et changer la valeur de la propriété INDEX (qui se fait automatiquement par copier coller). Exemple : optspecialité (0).value, optspecialité (1).value, optspecialité (2).value

Page 14: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

14 Cours VB – ISG 2007/2008

III.4 OptionButton (pour les choix exclusifs)

Remarque 3: Si on forme un groupe d’option alors il y a une seule procédure associée à tous les boutons avec comme argument INDEX as integer

Remarque 4: Si on veut manipuler plusieurs groupes il faut mettre chacun d’eux dans un frame (il faut mettre le frame avant et il faut qu’il soit sélectionné)

Private sub optmiseenforme_click (index as integer)Select case indexCase 0Label1.alignement= 2Case 1Label1.alignement= 1End selectEnd sub

Page 15: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

15 Cours VB – ISG 2007/2008

III.5 CheckBox (pour les choix multiples)

name : chkt… value : 0 (unchecked) / 1 (checked) / 2

(grayed) caption : label du CheckBox  index : sert pour les groupes

Page 16: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

16 Cours VB – ISG 2007/2008

III.5 CommandButton

CommandButton name : cmd… caption : contenu visible : true / false default: pour avoir comme équivalent clavier

la touche true cancel: pour avoir comme équivalent clavier

la touche cancel enabled: T (par défaut) / F

Remarque : Les CommandButton OK , Annuler se font sans équivalent clavier

Pour OK : c’est la touche entrée pour cela il faut mettre default : true

Pour Annuler : c’est la touche cancel pour cela il faut mettre cancel : true

Page 17: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

17 Cours VB – ISG 2007/2008

III.6 HScrollBar/ VScrollBar

HscrollBar / VscrollBar name : hsc / vsc… value : valeur initial et valeur en cours smallchange : Renvoie ou définit

l'importance de la modification de la propriété Value dans un contrôle de barre de défilement lorsque l'utilisateur clique sur une flèche de défilement.

largechange: Renvoie ou définit l'importance de la modification de la propriété Value dans un contrôle HScrollBar ou VScrollBar lorsque l'utilisateur clique sur la zone située entre le curseur et la flèche de défilement.

max Min

Page 18: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

18 Cours VB – ISG 2007/2008

III.6 HScrollBar/ VScrollBar

Remarque 1: Les barres de défilement sont des contrôles permettant de parcourir rapidement une longue liste d'éléments ou un grand nombre d'informations. Elles peuvent également indiquer la position courante sur une échelle. Vous pouvez utiliser une barre de défilement comme dispositif d'entrée de données ou comme indicateur de vitesse ou de quantité pour régler, par exemple, le volume sonore d'un jeu sur ordinateur ou pour visualiser le temps écoulé lors d'un processus minuté.

Remarque 2 : on ne peut pas utiliser des fractions dans smallchange ou largechange

Remarque 3 : pour voir la valeur de la barre de défilement il faut rajouter un label ou un textbox à côté et les lier Private sub hsctaille_change ()Lbltaille.caption= hsctaille.valueEnd sub

Page 19: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

19 Cours VB – ISG 2007/2008

IV. Le contrôle de la saisie

IV.1 L'événement VALIDATE L'événement _validate se produit avant que le

focus passe à un (deuxième) contrôle qui a la propriété CausesValidation à True. Cet évènement permet de bloquer l'utilisateur dans le contrôle tant qu'il n'a pas respecté les conditions de saisie.

Syntaxe: Private Sub object_Validate(cancel As Boolean)Private Sub txtdate_validate(cancel As Boolean)

If Not IsDate(txtdate.Text) Thencancel = True

End IfEnd Sub

Private Sub txtnote_validate(cancel As Boolean)If Not IsNumeric(txtnote.Text) Then

cancel = TrueEnd If

End Sub

Page 20: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

20 Cours VB – ISG 2007/2008

IV.2 L'évènement Keypress

Cet évènement se déclenche lorsqu'une touche correspondant à un caractère ASCII est enfoncée. Cependant cet évènement ne reconnaît pas les touches de fonction, d'édition et de navigation qui sont reconnus par keyup et keydown.

L'événement Keypress ne signale pas directement l'état du clavier il ne reconnaît pas l'état relâchée ou enfoncée d'une touche mais il fournit le code ASCII du caractère représenté par cette touche.

Syntaxe: Private Sub object_Keypress (keyascii As Integer)

Page 21: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

21 Cours VB – ISG 2007/2008

IV.2 L'évènement Keypress

Exemple 1: Procédure qui permet de convertir automatiquement les caractères saisis en majuscule.

Exemple 2: procédure qui permet de contrôler la zone NCIN en ne permettant que les valeurs numérique et le retour arrière, elle bloque le clavier pour les autres caractères.

Private Sub txt1_keypress(keyascii As Integer)keyascii =Asc(Ucase(Chr(keyascii )))End Sub

Private Sub txtNCIN_keypress(keyascii As Integer)If (keyascii < 48) Or (keyascii > 57) ThenIf (keyascii <> 8) Thenkeyascii = 0End IfEnd IfEnd Sub

Page 22: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

22 Cours VB – ISG 2007/2008

IV.2 L'évènement Keypress

keycodeconstants

keyascii

Vbkey0 48

Vbkey9 57

VbkeyA 65

VbkeyZ 90

Vbkeyback 8

Vbkeydelete 46

Vbkeyescape 27

Vbkeydecimal (.) 110

Vbkeyspace 32

Vbkeytab 9

Page 23: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

23 Cours VB – ISG 2007/2008

IV.3 L'évènement Keyup et keydown

Ces deux évènements signalent avec précision l'état physique du clavier: une touche est enfoncée (keydown) et une touche est rechachée (keyup).

Exemple: Pour déterminer si la touche enfoncée correspond à une lettre en majuscule ou minuscule ces événement utilisent l'argument shift.

Private sub txt1_keydown (keycode as integer, shift as integer)If keycode=VbkeyA and shift=1 thenMsgbox("vous avez appuyé sur la touche "A")End ifEnd sub

Page 24: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

24 Cours VB – ISG 2007/2008

IV.3 L'évènement Keyup et keydown

Shift

Maj 1

Ctrl 2

Maj+Ctrl 3

Alt 4

Maj+Alt 5

Ctrl+Alt 6

Maj+Ctrl+Alt

7

Page 25: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

25 Cours VB – ISG 2007/2008

IV.4 L'évènement Keyup au niveau de la feuille

L'évènement keyup peut être utilisé au niveau de la feuille (form) afin de valider ses données (contrôler si l'utilisateur a bien saisie tous les champs obligatoires) pour cela il faut:

1) mettre la propriété keypreview de la feuille à true (par défaut elle est à false) afin que la feuille reçoit les événements du clavier avant les contrôles eux même

2) On désactive un bouton de commande qui permet de calculer ou afficher etc. (en mode création ou excécution)

Private Sub Form_Load()Cmdclaculer.enabled=falseEnd Sub

Page 26: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

26 Cours VB – ISG 2007/2008

IV.4 L'évènement Keyup au niveau de la feuille

3) on utilise l'évènement keyup au niveau de la feuille:

Private Sub Form_keyup(KeyCode As Integer, Shift As Integer)Dim cont As VariantDim test As Booleantest = FalseFor Each cont In Controls

If TypeOf cont Is TextBox ThenIf cont.Text = "" Then

test = TrueEnd If

ElseIf TypeOf cont Is ListBox ThenIf cont.Text = "" Then

test = TrueEnd If

End IfNext contIf test = False Then

cmdafficher.Enabled = Trueelse

cmdafficher.Enabled = falseEnd IfEnd Sub

Page 27: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

27 Cours VB – ISG 2007/2008

Exercice

1) Ecrire un programme VB qui permet de convertir des Kilogrammes en Pounds et des Pounds en Kilogrammes (1 Kilogramme = 2,2 Pounds).

2) Soit les évènements suivants : L'évènement Validate : Private Sub

nom_controle_validate(cancel As Boolean)

L'évènement Keypress : Private Sub nom_controle_keypress(keyascii As Integer)

L'évènement keydown: Private sub nom_controle_keydown (keycode as integer, shift as integer)

L'évènement keyup: Private Sub nom_controle_keyup(KeyCode As Integer, Shift As Integer)

Page 28: Cours VB 2007/2008 1 Chapitre 3 Les contrôles en VB et le contrôle de la saisie

28 Cours VB – ISG 2007/2008

Exercice

a) Écrire le code qui permet le contrôle de la saisie

b) Écrire le code VB qui permet de convertir ou de préparer l’interface pour la conversion des Kilogrammes en Pounds lorsque l’utilisateur appuie sur les touches Ctrl+Alt+P.

c) Écrire le code VB qui permet de convertir ou de préparer l’interface pour la conversion des Pounds en Kilogrammes lorsque l’utilisateur appuie sur les touches Ctrl+Alt+K.

d) Écrire une fonction générique pour le contrôle de saisie qui retourne True ou False.