Vous êtes sur la page 1sur 103

, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 1/103

Manipulation des principaux composants avec


les WinForms
(C++.Net sous Visual Studio 2005)

PREAMBULE- LES CONVENTIONS DE NOMMAGE DES COMPOSANTS...........5

1- LES COMPOSANTS CONTENEURS ET DE MISE EN PAGE ................................6

1.1- LE COMPOSANT FORM ...........................................................................................................................6


1.1.1- CONFIGURATION D’UN FORMULAIRE ............................................................................................................6
1.1.2- CREATION D’UN FORMULAIRE (FORMULAIRE MODAL, NON MODAL, MESSAGEBOX, APPLICATION MDI) ...8

1.2- LE COMPOSANT PANEL........................................................................................................................14


1.2.1- UN PANEL POUR HABILLER LE FORMULAIRE ...............................................................................................14
1.2.2- UN PANEL POUR CONTENIR ET MANIPULER DES COMPOSANTS (PROPRIETE CONTROLS) ...........................14

1.3- LE COMPOSANT GROUPBOX ..............................................................................................................17


1.3.1- UN GROUPBOX POUR HABILLER LE FORMULAIRE .......................................................................................17
1.3.2- UN GROUPBOX POUR CONTENIR ET MANIPULER DES COMPOSANTS (AVEC RADIOBUTTON)......................18

1.4- LE COMPOSANT TABCONTROL.........................................................................................................19


1.4.1- UN TABCONTROL POUR ORGANISER VISUELLEMENT LES INFORMATIONS ..................................................19
1.4.2- UN TABCONTROL POUR SELECTIONNER DIFFERENTES PAGES .....................................................................20

1.5- LE COMPOSANT SPLITCONTAINER .................................................................................................23


1.5.1- UN SPLITCONTAINER POUR ORGANISER VISUELLEMENT LES INFORMATIONS.............................................23

2- LES COMPOSANTS D’EDITION ET DE SAISIE DE TEXTE...............................25

2.1- LE COMPOSANT LABEL........................................................................................................................25


2.1.1- UN LABEL POUR DONNER DES INFORMATIONS ............................................................................................25

2.2- LE COMPOSANT TEXTBOX..................................................................................................................26


2.2.1- L’APPARENCE D’UNE TEXTBOX ..................................................................................................................26
2.2.2- LE FONCTIONNEMENT D’UNE TEXTBOX (CONVERSION NUMERIQUES) .......................................................27

2.3- LE COMPOSANT MASKEDTEXTBOX ................................................................................................29


2.3.1- L’APPARENCE D’UN MASKEDTEXTBOX .......................................................................................................29

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 1


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 2/103

2.4- LE COMPOSANT RICHTEXTBOX .......................................................................................................30


2.4.1- L’APPARENCE D’UN RICHTEXTBOX .............................................................................................................30
2.4.2- LE FONCTIONNEMENT D’UN RICHTEXTBOX ................................................................................................31

2.5- LE COMPOSANT NUMERICUPDOWN................................................................................................33


2.5.1- L’APPARENCE D’UN NUMERICUPDOWN ......................................................................................................33
2.5.2- LE FONCTIONNEMENT D’UN NUMERICUPDOWN ..........................................................................................33

3- LES COMPOSANTS DE SAISIE D’OPTIONS..........................................................34

3.1- LE COMPOSANT CHECKBOX ..............................................................................................................34


3.1.1- L’APPARENCE D’UN CHECKBOX ..................................................................................................................34
3.1.2- LE FONCTIONNEMENT DE CHECKBOX .........................................................................................................35

3.2- LE COMPOSANT CHECKEDLISTBOX ...............................................................................................36


3.2.1- L’APPARENCE D’UN CHECKEDLISTBOX.......................................................................................................36
3.2.2- LE FONCTIONNEMENT D’UN CHECKEDLISTBOX ..........................................................................................36

3.3- LE COMPOSANT COMBOBOX .............................................................................................................38


3.3.1- L’APPARENCE D’UNE COMBOBOX ...............................................................................................................38
3.3.2- LE FONCTIONNEMENT D’UNE COMBOBOX ..................................................................................................39

3.4- LE COMPOSANT LISTBOX ...................................................................................................................41


3.4.1- L’APPARENCE D’UNE LISTBOX ....................................................................................................................41
3.4.2- LE FONCTIONNEMENT D’UNE LISTBOX........................................................................................................41

3.5- LE COMPOSANT RADIOBUTTON .......................................................................................................43


3.5.1- L’APPARENCE D’UN RADIOBUTTON ............................................................................................................43
3.5.2- LE FONCTIONNEMENT DE RADIOBUTTON ....................................................................................................44

4- LES COMPOSANTS DE CHOIX D’ACTIONS SUR L’INTERFACE ...................45

4.1- LE COMPOSANT BUTTON ....................................................................................................................45


4.1.1- L’APPARENCE D’UN BUTTON.......................................................................................................................45
4.1.2- LE FONCTIONNEMENT D’UN BUTTON ..........................................................................................................46

4.2- LE COMPOSANT MENUSTRIP .............................................................................................................47


4.2.1- LA CONFIGURATION D’UN MENUSTRIP ........................................................................................................47
4.2.2- LE FONCTIONNEMENT D’UN MENUSTRIP .....................................................................................................49

4.3- LE COMPOSANT CONTEXTMENUSTRIP..........................................................................................52


4.3.1- LA CONFIGURATION D’UN CONTEXTMENUSTRIP .........................................................................................52
4.3.2- LE FONCTIONNEMENT D’UN CONTEXTMENUSTRIP......................................................................................53

4.4- LE COMPOSANT TOOLSTRIP..............................................................................................................55


4.4.1- LA CONFIGURATION D’UN TOOLSTRIP .........................................................................................................55
4.4.2- LES DIFFERENTS ELEMENTS D’UN TOOLSTRIP .............................................................................................56

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 2


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 3/103

5- LES COMPOSANTS D’AFFICHAGE D’INFORMATIONS D’ETAT, D’AIDE...63

5.1- LE COMPOSANT TOOLTIP ...................................................................................................................63


5.1.1- L’UTILISATION D’UN TOOLTIP .....................................................................................................................63

5.2- LE COMPOSANT PROGRESSBAR .......................................................................................................64


5.2.1- LA CONFIGURATION ET L’UTILISATION D’UNE PROGRESSBAR ....................................................................64

5.3- LE COMPOSANT STATUSSTRIP..........................................................................................................65


5.3.1- LA CONFIGURATION D’UN STATUSSTRIP .....................................................................................................65
5.3.2- LES COMPOSANTS D’UN STATUSSTRIP ........................................................................................................66

5.4- LE COMPOSANT NOTIFYICON ...........................................................................................................68


5.4.1- LA CONFIGURATION D’UN NOTIFYICON ......................................................................................................68
5.4.2- L’UTILISATION D’UN NOTIFYICON...............................................................................................................68

6- LES COMPOSANTS BOITES DE DIALOGUE ........................................................70

6.1- LE COMPOSANT FOLDERBROWSERDIALOG ................................................................................70


6.1.1- LA CONFIGURATION ET L’UTILISATION D’UNE FOLDERBROWSERDIALOG .................................................70

6.2- LE COMPOSANT OPENFILEDIALOG.................................................................................................71


6.2.1- LA CONFIGURATION ET L’UTILISATION D’UNE OPENFILEDIALOG (LECTURE MUSIQUE) .......................71

6.3- LE COMPOSANT SAVEFILEDIALOG .................................................................................................73


6.3.1- LA CONFIGURATION ET L’UTILISATION D’UNE SAVEFILEDIALOG ..............................................................73

6.4- LE COMPOSANT PRINTDIALOG.........................................................................................................78


6.4.1- LA CONFIGURATION ET L’UTILISATION D’UNE PRINTDIALOG .....................................................................78

6.5- LE COMPOSANT COLORDIALOG ......................................................................................................80


6.5.1- LA CONFIGURATION ET L’UTILISATION D’UN COLORDIALOG ....................................................................80

6.6- LE COMPOSANT FONTDIALOG ..........................................................................................................81


6.6.1- LA CONFIGURATION ET L’UTILISATION D’UNE FONTDIALOG ......................................................................81

7- LES COMPOSANTS DE MANIPULATION DE DATES.........................................82

7.1- LE COMPOSANT DATETIMEPICKER ................................................................................................82


7.1.1- LA CONFIGURATION D’UN DATETIMEPICKER ..............................................................................................82
7.1.2- L’UTILISATION D’UN DATETIMEPICKER ......................................................................................................82

7.2- LE COMPOSANT MONTHCALENDAR ...............................................................................................84


7.2.1- LA CONFIGURATION D’UN MONTHCALENDAR .............................................................................................84
7.2.2- L’UTILISATION D’UN MONTHCALENDAR .....................................................................................................85

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 3


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 4/103

8- LES COMPOSANTS D’AFFICHAGES STRUCTURES ..........................................86

8.1- LE COMPOSANT LISTVIEW .................................................................................................................86


8.1.1- LA CONFIGURATION D’UNE LISTVIEW .........................................................................................................86
8.1.2- L’UTILISATION D’UNE LISTVIEW .................................................................................................................88

8.2- LE COMPOSANT TREEVIEW ...............................................................................................................92


8.2.1- LA CONFIGURATION D’UN TREEVIEW..........................................................................................................92
8.2.2- L’UTILISATION D’UN TREEVIEW ..................................................................................................................93

9- LES COMPOSANTS DE MANIPULATION D’IMAGES ........................................97

9.1- LE COMPOSANT PICTUREBOX...........................................................................................................97


9.1.1- LA CONFIGURATION D’UNE PICTUREBOX ...................................................................................................97

9.2- LE COMPOSANT IMAGELIST ..............................................................................................................98


9.2.1- L’UTILISATION D’UNE IMAGELIST ...............................................................................................................98

10- LES COMPOSANTS DE MANIPULATION DES PAGES WEB ..........................99

10.1- LE COMPOSANT LINKLABEL ...........................................................................................................99


10.1.1- L’ASPECT D’UN LINKLABEL .....................................................................................................................99
10.1.2- L’UTILISATION D’UN LINKLABEL.............................................................................................................99

10.2- LE COMPOSANT WEBBROWSER ...................................................................................................100


10.2.1- LA CONFIGURATION D’UN WEBBROWSER ..............................................................................................100
10.2.2- LA NAVIGATION AVEC UN WEBBROWSER ..............................................................................................100

11- DES COMPOSANTS NON VISUELS .....................................................................103

11.1- LE COMPOSANT TIMER....................................................................................................................103


11.1.1- LA CONFIGURATION D’UN TIMER...........................................................................................................103
11.1.2- L’UTILISATION D’UN TIMER ...................................................................................................................103

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 4


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 5/103

Préambule- Les conventions de nommage des composants

COMPOSANT PREFIXE
Button btn
CheckBox chk
CheckListBox chkl
ColorDialog cld
ComboBox cb
ContextMenuStrip cmn
DateTimePicker dtp
FolderBrowserDialog fbd
FontDialog ftd
Form frm
GroupBox grb
ImageList iml
Label lbl
LinkLabel lklbl
ListBox lst
ListView lsv
MaskedTextBox mtxt
MenuStrip mn
MonthCalendar mc
NotifyIcon nti
NumericUpDown nud
OpenFileDialog ofd
Panel pnl
PictureBox pic
PrintDialog prd
ProgressBar pgb
RadioButton rbtn
RichTextBox rtxt
SaveFileDialog sfd
SplitContainer spc
StatusStrip sts
TabControl tbc
TabPage tbp
TextBox txt
Timer tim
ToolStrip too
ToolTip totp
TreeView trv
WebBrowser wwb

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 5


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 6/103

1- Les composants conteneurs et de mise en page

1.1- Le composant FORM

La classe Form est un formulaire, c’est-à-dire soit une fenêtre, soit une boîte
de dialogue. Les différents contrôles se placent sur les Forms.

Les formulaires possèdent par défaut les attributs d’une fenêtre en haut : barre
de titre, icône à gauche, boutons Réduire, Diminuer et Fermer à droite. Le
bouton Fermer permet de fermer la Form et, donc, l’application.

Les propriétés des formulaires permettent de modifier leur apparence et leur


comportement.

 MEMBRES DE LA CLASSE FORM de l’espace de noms System::Windows::Forms :


http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemwindowsformsfor
mmemberstopic.asp

Comment faire ?
 Accès à une Form :
− Explorateur de solutions, Fichiers d’en-tête, double cliquer sur Form1.h ;
− Cliquer sur l’onglet Form1.h [Design] du concepteur de code.
 Accès au code d’une Form :
− Double cliquer sur la Form en mode Design pour ouvrir le concepteur de code.

1.1.1- Configuration d’un formulaire

Comment changer la taille et la position d’un formulaire ?

 Propriétés :
− Size (Width et Height) : dimensions du formulaire.
− Location (X et Y) : coordonnées du coin supérieur gauche du formulaire.
− StartPosition : position initiale du formulaire au moment de l'exécution.
Valeurs possibles :
CenterParent formulaire centré dans les limites de son formulaire parent.
CenterScreen formulaire centré avec les dimensions spécifiées dans Size.
Manual position du formulaire déterminée par Location.
WindowsDefaultBounds formulaire situé à l'emplacement et avec les limites par défaut de
Windows.
WindowsDefaultLocation formulaire situé à l'emplacement par défaut de Windows avec
les dimensions spécifiées dans Size.
 Méthodes :

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 6


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 7/103

− Scale(float) : Dimensionne le formulaire et ses contrôles enfants éventuels au taux


spécifié.

Comment changer l’aspect d’un formulaire ?

 Propriétés :
− FormBorderStyle : Style de la bordure du formulaire.
Valeurs possibles :
Fixed3D Bordure tridimensionnelle fixe.
FixedDialog Bordure épaisse et fixe.
FixedSingle Bordure fixe d'une ligne.
FixedToolWindow Bordure non redimensionnable. Barre de titre réduite.
None Aucune bordure.
Sizable Bordure redimensionnable.
SizableToolWindow Bordure de fenêtre redimensionnable. Barre de titre réduite.

− Icon et ShowIcon : icône du formulaire dans la barre de titre et dans la barre de tâche
(quand le formulaire est minimisé).
− Text : titre dans la barre de titre.
− Font : police du texte affiché par le contrôle.
− Cursor : curseur qui est affiché lorsque le pointeur de la souris se trouve sur le
formulaire.

− MainMenuStrip : menu associé au formulaire.


− ContextMenuStrip : menu contextuel (obtenu par un clic droit) associé au formulaire.

− WindowState (Maximized, Minimized ou Normal) : état de la fenêtre du formulaire.

− Opacity : pourcentage d'opacité du formulaire.


− BackgroundImage : image d'arrière-plan affichée dans le formulaire.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée dans le
formulaire.
Valeurs possibles :
Center L'image est centrée dans le formulaire.
None L'image est alignée à gauche en haut dans le formulaire.
Stretch L'image est étirée dans le formulaire.
Tile L'image est affichée en mosaïque dans le formulaire.
Zoom L'image est agrandie dans le formulaire.

− BackColor : couleur d'arrière-plan du formulaire.


Exemple :
// this remplace Form1 dans un gestionnaire d’évènement du formulaire Form1
this→BackColor= Color ::AliceBlue ;

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 7


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 8/103

1.1.2- Création d’un formulaire (formulaire modal, non modal, MessageBox, application MDI)

Comment afficher/ne plus afficher un formulaire ?

 Propriétés :
− Visible : formulaire affiché ou non.

 Méthodes :
− Show() : affichage du formulaire à l'utilisateur.
− ShowDialog() : affichage du formulaire comme une boîte de dialogue modale.
− Hide() : masquage du formulaire à l'utilisateur.
− Close() : fermeture formulaire.

 Evènements :
− Load : se produit avant le premier affichage d'un formulaire.
− FormClosed : se produit lorsque le formulaire est fermé.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 8


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 9/103

Exemple : OUVERTURE DE BOÎTES DE MESSAGES, DE FORMULAIRES MODAL


ET NON MODAL (au lancement de l’application ou à sa fermeture)

 Boîte de dialogue MESSAGEBOX (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/en-us/library/aa335424(VS.71).aspx
Les autres boîtes de dialogues standards sont vues dans un chapitre ultérieur.

 Ajout d’une nouvelle Form au projet : menu contextuel dans l’explorateur de solutions, choisir
Ajouter/Nouvel élément, puis choisir UI/Windows Form, donner un nom de classe.

OUVERTURE D’UN FORMULAIRE MODAL au lancement de l’application :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :


#pragma once
// inclusion des classes des autre Forms créées
#include "FormModale.h"
#include "FormNonModale.h"

#pragma endregion

// ---------------------------------------------
// initialisations au lancement de l'application
// ---------------------------------------------
private: System::Void Form1_Load(System::Object^ sender,System::EventArgs^ e)
{
// Déclaration et création d'une FormModale
///////////////////////////////////////////
// NE PAS OUBLIER D'INCLURE LE .h DE LA CLASSE FormModale
FormModale^ frmModale= gcnew FormModale();
// ouverture modale de la Form créée : elle restera en premier plan tant
// qu'elle ne sera pas fermée : elle bloque l'application
/////////////////////////////////////////
// son bouton OK permet de fermer cette Form et la Form appelante en est
// informée, car la propriété DIALOGRESULT du bouton est définie à OK
if( frmModale->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{

//si le bouton OK a été cliqué, affichage d'un message


// voir plus bas pour une explication sur MessageBox
MessageBox::Show("Formulaire modal quitté avec OK..");

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 9


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 10/103

OUVERTURE D’UN FORMULAIRE NON MODAL au lancement de l’application :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL, à la suite du Form1_Load :

// Déclaration et création d'une FormNonModale


//////////////////////////////////////////////
// NE PAS OUBLIER D'INCLURE LE .h DE LA CLASSE FormNonModale
FormNonModale^ frmNonModale= gcnew FormNonModale();
// ouverture non modale de la Form créée, qui n'empêche pas l'ouverture
// de la Form principale : elle ne bloqie pas l'application
//////////////////////////////////////////
// Pour fermer cette Form : méthode de fermeture si son bouton cliqué
frmNonModale->Show();
} // FIN Form1_Load

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 10


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 11/103

DANS LE FICHIER DU FORMULAIRE NON MODAL (FormNonModale.h) :

#pragma endregion
// -----------------------------------------------------------
// fermeture de la Form non modale si son bouton OK est cliqué
// -----------------------------------------------------------
private: System::Void btnOK_Click(System::Object^ sender,System::EventArgs^ e)
{ Close(); // fermer la Form non modale }

LANCEMENT D’UNE BOÎTE DE MESSAGE à la fermeture de l’application :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// ---------------------------------------------
// opérations à la fermeture de l'application
// ---------------------------------------------
private: System::Void Form1_FormClosed(System::Object^ sender,
System::Windows::Forms::FormClosedEventArgs^ e) {

// boîte de message avec le message, le titre de la boîte de dialogue,


// les boutons utilisés, et le symbole graphique
MessageBox::Show("Fermeture application...", "Information",
MessageBoxButtons::OK, MessageBoxIcon::Information);

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 11


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 12/103

Comment utiliser des formulaires MDI (Multiple Document Interface) ?

 Propriétés :
− IsMdiContainer : indique si le formulaire est parent de formulaires enfants MDI.
− MdiParent : indique le formulaire parent d’un formulaire enfant.

 Méthodes :
− LayoutMdi(MdiLayout::Cascade) : organisation des formulaires enfants MDI au sein
du formulaire parent MDI.
Valeurs possibles :
ArrangeIcons icônes enfants disposées dans le formulaire parent.
Cascade fenêtres enfants disposées en cascade dans le formulaire parent.
TileHorizontal fenêtres enfants disposées en mosaïque horizontalement dans le
formulaire parent.
TileVertical fenêtres enfant disposées en mosaïque verticalement dans le
formulaire parent.

Exemple : CREATION D’UNE APPLICATION MDI (au lancement de l’application) :


UN FORMULAIRE PARENT CONTIENT 3 FORMULAIRES ENFANTS

CREATION DES FORMULAIRES ENFANTS DANS LE FORMULAIRE PARENT :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// -----------------------
// initialisations au
lancement de l'application
// -----------------------
private: System::Void
Form1_Load(System::Object^sen
der, System::EventArgs^ e) {

// crée de nouvelles
Forms à partir de la classe
FormNonModale
FormNonModale ^ enfant1
= gcnew FormNonModale();
FormNonModale ^ enfant2
= gcnew FormNonModale();
FormNonModale ^ enfant3
= gcnew FormNonModale();

// transformation des Forms en Form enfant ; this est la Form dans


// laquelle ce gestionnaire d'évènement est écrit:Form principale parent
enfant1->MdiParent = this;
enfant2->MdiParent = this;
enfant3->MdiParent = this;

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 12


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 13/103

// affectation des titres aux Form enfant par parcours des Forms enfants
// dans la Form parent
for (int i=0; i < this->MdiChildren->Length; i++)
this->MdiChildren[i]->Text = "Form enfant " + (i+1).ToString();
// affichage des Forms enfant dans la Form parent
enfant1->Show();
enfant2->Show();
enfant3->Show();
}

DANS LE FICHIER DE LA CLASSE DES FORMULAIRES ENFANT :


// -----------------------------------------------------------
// fermeture de la Form non modale si son bouton OK est cliqué
// -----------------------------------------------------------
private: System::Void btnOK_Click(System::Object^ sender,System::EventArgs^ e)
{ Close(); // fermer la Form non modale }

PRESENTATIONS DES FORMULAIRES ENFANTS DANS LE FORMULAIRE PARENT :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :


// --------------------------------------------------------------
// menus de présentation des fenêtres enfants dans le Form parent
// --------------------------------------------------------------
private: System::Void cascadeToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{ // disposition des Forms enfants en cascade
this->LayoutMdi(MdiLayout::Cascade) ; }
private: System::Void verticalToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{ // disposition des Forms enfants verticalement
this->LayoutMdi(MdiLayout::TileVertical) ; }
private: System::Void horizontalToolStripMenuItem_Click(System::Object^
sender, System::EventArgs^ e)
{ // disposition des Forms enfants horizontalement
this->LayoutMdi(MdiLayout::TileHorizontal) ; }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 13


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 14/103

1.2- Le composant PANEL

 MEMBRES DE LA CLASSE PANEL de l’espace de noms System::Windows::Forms :


http://msdn2.microsoft.com/en-us/library/system.windows.forms.panel_members(VS.80).aspx

La classe Panel est un conteneur de composants, qui permet aussi


d’habiller l’interface.

Le Panel est proche du GroupBox ; toutefois, seulement le Panel peut


avoir des barres de défilement et seulement le GroupBox peut afficher une
légende.

1.2.1- Un panel pour habiller le formulaire

Comment changer l’aspect d’un panel ?


 Propriétés :
− BackColor : couleur d'arrière-plan du panel.
− BackgroundImage : image d'arrière-plan affichée dans le panel.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée dans le panel.
− BorderStyle : type de bordure du panel.
− Cursor : forme du curseur au-dessus du contrôle.

1.2.2- Un panel pour contenir et manipuler des composants (propriété Controls)

Comment manipuler les composants d’un panel ?


 Propriétés :
− Controls : collection des composants du conteneur panel. Cette classe possède divers
membres :( http://msdn2.microsoft.com/en-
us/library/system.windows.forms.control.controlcollection_members(VS.80).aspx)
⋅ Propriété Count : nombre de composants.
⋅ Méthode Add(control) : ajoute un composant à la collection.
⋅ Méthode Remove(control) : enlève un composant de la collection.
⋅ Méthode GetType() : indique la classe du composant.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 14


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 15/103

Exemple : TRANSFERT PAR CODE DE COMPOSANTS D’UN PANEL A UN AUTRE

MODIFICATION DE L’ASPECT DES COMPOSANTS D’UN PANEL PAR CODE :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// -----------------------------------------
// réaction à un clic sur le panel de gauche
// -----------------------------------------
private: System::Void pnlOutil_Click(System::Object^ sender,
System::EventArgs^ e)

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 15


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 16/103

{ // parcours des composants sur le panel


for (int i=0;i<pnlOutil->Controls->Count;i++)
{ // changement couleur de fond de tous les composants du panel
pnlOutil->Controls[i]->BackColor= Color::Aqua;

// détection des composants du panel qui sont de la classe Button


if ( pnlOutil->Controls[i]->GetType()->ToString() ==
"System.Windows.Forms.Button" )
{ // modification de la couleur de fond des boutons
pnlOutil->Controls[i]->BackColor= Color::Brown;
// modification du texte du bouton en forçant le type du
// control:permet d'accéder à des membres propre à button
Button ^btnTemp = safe_cast<Button ^> (pnlOutil->Controls[i]);
btnTemp->Text= "nouveau texte";
}

}
}

DEPLACEMENT DE COMPOSANTS D’UN PANEL A L’AUTRE PAR CODE :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// -----------------------------------------
// réaction à un clic sur le panel de droite
// -----------------------------------------
private: System::Void pnlDessin_Click(System::Object^ sender,
System::EventArgs^ e)
{ // transfert du bouton btnPanel du panel de gauche vers celui de droite
pnlDessin->Controls->Add(btnPanel);
// transfert du 2° composant du panel de gauche vers le panel de droite
pnlDessin->Controls->Add(pnlOutil->Controls[1]);
// le label lblPanel est enlevé du panel de gauche
pnlOutil->Controls->Remove(lblPanel);
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 16


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 17/103

1.3- Le composant GROUPBOX

 MEMBRES DE LA CLASSE GROUPBOX de l’espace de noms System::Windows::Forms :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.groupbox_members(VS.80).aspx

La classe Groupbox est un conteneur de composants, qui permet


aussi d’habiller l’interface.

Le Groupbox est proche du Panel ; toutefois, seulement le Panel


peut avoir des barres de défilement et seulement le GroupBox peut
afficher une légende.

D’autre part, le Groupbox est surtout utilisé pour grouper les


Radiobutton.

1.3.1- Un groupbox pour habiller le formulaire

Comment changer l’aspect d’un groupbox ?

 Propriétés :

− Text : intitulé au-dessus du groupbox.


− RigthToLeft : position de l’intitulé à droite ou à gauche.
− BackColor : couleur d'arrière-plan du groupbox.
− BackgroundImage : image d'arrière-plan affichée dans le groupbox.
− BackgroundImageLayout : façon dont l’image d’arrière-plan est affichée.
− Cursor : forme du curseur au-dessus du contrôle.
− Font : police du texte affiché par le contrôle.
− FlatStyle : apparence du groupbox.
Valeurs possibles :
Flat Le groupbox apparaît plat.
Popup Le groupbox apparaît plat, sauf si le pointeur de souris est au-dessus
(aspect 3-dimensions).
Standard Le groupbox apparaît en 3-dimensions.
System L’apparence du groupbox est determinée par le système d’exploitation.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 17


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 18/103

1.3.2- Un groupbox pour contenir et manipuler des composants (avec RadioButton)

Comment manipuler les radiobutton placés sur un groupbox ?


 Propriétés :
− Controls : collection des composants du conteneur groupbox. Cette classe possède
divers membres :( http://msdn2.microsoft.com/en-
us/library/system.windows.forms.control.controlcollection_members(VS.80).aspx)
⋅ Propriété Count : nombre de composants.
⋅ Méthode int Indexof(^ control) : renvoi l’indice du contrôle spécifié dans la
collection de composants. Les indices commencent à 0 (l’indice 0 est attribué au
dernier composant posé dans le groupbox).

Exemple : RECUPERATION DANS LE CODE DE L’INDICE DU BOUTON CLIQUE

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :


// -----------------------------------------------------------------------
// réaction à un changement de sélection d'un radiobutton
// ce gestionnaire d'évènement est affecté aux 3 radiobutton via la fenêtre
// de propriétés, onglet évènement.
// Un radiobutton doit être coché par défaut dans la fenêtre de propriétés
// (propriété Checked à true)
// -----------------------------------------------------------------------
private: System::Void rdbBlanc_CheckedChanged (System::Object^ sender,
System::EventArgs^ e)
{
// l'objet sender (radiobutton dont la
sélection a changé), est converti en
référence de radiobutton
RadioButton ^rdbSender =
safe_cast<RadioButton ^> (sender);
// l'indice du radiobutton sélectionné
est récupéré à partir du groupbox et de
sa collection de contrôles.
// Les indices sont affectés dans le
groupbox par ordre inverse de dépôt des
composants dans le groupbox ; dernier
posé = indice 0.
int indice= grbCouleur->Controls->
IndexOf(rdbSender);

// affichage dans la boîte d'édition du texte de l'option sélectionnée


txtInfo->Text="Option choisie \""+grbCouleur->Controls[indice]->Text
+"\"";
// affichage, à la suite, de l'indice du radiobutton choisi
txtInfo->Text= txtInfo->Text + " (indice " + indice.ToString() + ")";
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 18


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 19/103

1.4- Le composant TABCONTROL


 MEMBRES DE LA CLASSE GROUPBOX de l’espace de noms System::Windows::Forms :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.tabcontrol_members(VS.80).aspx

La classe tabControl gère un ensemble de pages d’onglets. Elle


permet d’organiser visuellement et de façon compacte le contenu
d’un formulaire. L’utilisateur navigue d’une page à l’autre en
cliquant avec la souris sur les onglets (en-têtes des pages).

Des contrôles peuvent être posés directement sur chacune des pages
à onglets.

1.4.1- Un tabcontrol pour organiser visuellement les informations

Comment changer l’aspect d’un tabcontrol ?


 Propriétés :
− Alignment : zone où les onglets sont disposés.
Valeurs possibles :
Bottom Les onglets sont situés le long du bord inférieur du tabcontrol.
Left Les onglets sont situés le long du bord gauche du tabcontrol.
Right Les onglets sont situés le long du bord droit du tabcontrol.
Top Les onglets sont situés le long du bord supérieur du tabcontrol.

− Appearance : apparence des onglets.


Valeurs possibles :
Buttons Les onglets ont l'aspect de boutons 3D.
FlatButtons Les onglets ont l'aspect de boutons à deux dimensions (flat).
Normal Les onglets ont un aspect standard.

− Font : police du texte affiché par le tabcontrol.


− Padding : largeur X et hauteur Y des onglets.
− SizeMode : mode de dimensionnement des onglets du tabcontrol.
Valeurs possibles :
FillToRight La largeur de chaque onglet est dimensionnée de telle sorte que
chaque ligne d'onglets remplisse toute la largeur du tabcontrol.
Fixed Tous les onglets d'un tabcontrol présentent la même largeur.
Normal La largeur de chaque onglet est dimensionnée en fonction des
informations à afficher dedans.

− Multiline : en cas de nombreuses pages, indique si les onglets s’affichent sur plusieurs
lignes ou si une flèche permet d’accéder aux onglets cachés.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 19


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 20/103

− ImageList : contrôle ImageList contenant les images à afficher dans les onglets. Pour
que l’image s’affiche bien, il faut aussi fixer la propriété ImageIndex pour chaque page
(en liaison avec les indices de l’imagelist).

− TabPages : collection des pages du tabcontrol. On ajoute un pages à onglets grâce à la


propriété TabPages. L'ordre des pages d'onglets dans cette collection correspond à
l'ordre des onglets dans le tabcontrol.
− TabPages[i] : c’est un TabPage (cliquer sur la page pour avoir accès aux propriétés de
la page) : une page à onglet de la collection du tabcontrol. Cette classe possède divers
membres : (http://msdn2.microsoft.com/fr-
fr/library/system.windows.forms.tabpage_members(VS.80).aspx)
⋅ Propriété BackColor : couleur d'arrière-plan de la page.
⋅ Propriété BackgroundImage : image d'arrière-plan affichée dans la page.
⋅ Propriété BackgroundImageLayout : façon dont l’image d’arrière-plan est
affichée.
⋅ Propriété BorderStyle: type de bordure de la page.
⋅ Propriété Font : police du texte affiché dans la page.
⋅ Propriété Text : titre de l’onglet de la page.
⋅ Propriété ImageIndex : indice de l’image (dans l’imagelist associée au
tabcontrol) qui est affichée dans l’onglet de la page, devant son titre.
⋅ Propriété ImageKey : nom de l’image affichée dans l’onglet de la page.

1.4.2- Un tabcontrol pour sélectionner différentes pages

Comment sélectionner une page dans un tabcontrol ?


 Propriétés :
− SelectedIndex : indice de la page à onglet (int) sélectionnée dans le tabcontrol.
− Selectedtab : page à onglet (TabPage ^) sélectionnée dans le tabcontrol.
− TabCount : nombre d’onglets du tabcontrol.
− TabPages : collection des pages du tabcontrol. Cette classe possède divers membres :
(http://msdn2.microsoft.com/fr-
fr/library/system.windows.forms.tabcontrol.tabpagecollection_members(VS.80).aspx)
⋅ Propriété Count : nombre de pages à onglets dans la collection.
⋅ Propriété Item(indice ou name de la page) : une page à onglet dans la
collection.
⋅ Méthode IndexOf(^ TabPage) : index de la page à onglet spécifiée dans la
collection par sa référence.
⋅ Méthode IndexOf(name de la page) : index de la page à onglet spécifiée dans la
collection par son nom.
 Méthodes :
− SelectTab(index de la page dans la collection tabPages ou nom de la page ou
référence du tabpage) : la page spécifiée est activée.
− DeselectTab (index de la page dans la collection tabPage ou nom de la page ou
référence du tabpage) : la page qui suit la page spécifiée est activée.
 Evènements :
− SelectedIndexChanged : se produit lorsque la propriété SelectedIndex change.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 20


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 21/103

Exemple : RECUPERATION DANS LE CODE DE LA PAGE SELECTIONNEE

CHANGEMENT DE SELECTION DE PAGE PAR CODE :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// ---------------------
// sélection de la
première page au
démarrage
// ---------------------
private: System::Void
Form1_Load(System::Objec
t^ sender,
System::EventArgs^ e) {

tbcAide->SelectedTab=
tbcAide->TabPages[0];

// -----------------
// forçage de la
sélection d'une page
par clic sur un bouton
// -----------------
private: System::Void
btnSelectionnerPage2_C
lick(System::Object^
sender,
System::EventArgs^ e)
{

// sélection de la
deuxième page du
tabcontrol
TbcAide->SelectTab(1);

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 21


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 22/103

DETECTION DE PAGE SELECTIONNNEE PAR CODE :

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// ---------------------------------------------
// réaction à un changement de page sélectionnée
// ---------------------------------------------
private: System::Void tbcAide_SelectedIndexChanged(System::Object^ sender,
System::EventArgs^ e) {

// construction message avec le titre d'onglet de la page sélectionnée


String ^Info= "Je suis sur la page " + tbcAide->SelectedTab->Text;
// ajout de l'indice de la page sélectionnée via le tabControl
Info= Info + " (index : "+Convert::ToString(tbcAide->SelectedIndex)+")";

// ajout du nombre de pages du tabcontrol


Info= Info + " / le nombre total de pages est : " +
Convert::ToString(tbcAide-> TabCount);
// passage à la ligne dans le message
Info= Info + Environment::NewLine;

// ajout de l'indice de la page sélectionnée via la collection tabPages


Info= Info + "Je suis sur la page " + tbcAide->TabPages ->
IndexOf(tbcAide-> SelectedTab);
MessageBox::Show(Info);

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 22


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 23/103

1.5- Le composant SPLITCONTAINER


 MEMBRES DE LA CLASSE SPLITCONTAINER (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.splitcontainer_members(VS.80).aspx

La classe splitContainer permet de créer un séparateur mobile (splitter),


afin de partager une fenêtre en deux parties redimensionnables.

Le splitContainer est composé de deux panels, qui sont donc des


conteneurs de composants.

1.5.1- Un splitcontainer pour organiser visuellement les informations

Comment changer l’aspect d’un splitcontainer ?


 Propriétés :
− BackgroundImage : image affichée dans la barre de redimensionnement.
− SplitterWidth : épaisseur de la barre qui sert au redimensionnement.
− IsSplitterFixed : pour fixer la barre ou la rendre mobile.
− SplitterDistance : emplacement de la barre, en pixels, à partir du bord gauche ou
supérieur du SplitContainer.
− SplitterIncrement : incrément de déplacement de la barre en pixels.
− Orientation : orientation horizontale ou verticale des panneaux du spitcontainer.
− Cursor : forme du curseur au-dessus de la barre de redimensionnement.
− BorderStyle : style de la barre de redimensionnement. Valeurs possibles :
None Aucune bordure.
FixedSingle Bordure à ligne simple.
Fixed3D Bordure 3D.
− BackColor : couleur d'arrière-plan du splitcontainer (des deux panels).
− Font : police du texte affiché par les panels.
− Panel1MinSize : taille minimum dun panel gauche ou supérieur.
− Panel2MinSize : taille minimum dun panel droit ou inférieur.
− Panel1 : panel gauche ou supérieur du SplitContainer, en fonction de Orientation.
− Panel2 : panel droit ou inférieur du SplitContainer, en fonction de Orientation.
⋅ Propriété BackColor : couleur d'arrière-plan du panel.
⋅ Propriété BackgroundImage : image d'arrière-plan affichée dans le panel.
⋅ Propriété BackgroundImageLayout : façon dont l’image d’arrière-plan est
affichée dans le panel.
⋅ Propriété Font : police du texte affiché dans le panel.
 Evènements :
− SplitterMoved : lorsque la barre de redimensionnement a été déplacée.
− SplitterMoving : lorsque la barre de redimensionnement est en train d’être déplacée.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 23


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 24/103

Exemple : CHANGEMENT DU CURSEUR LORS DU DEPLACEMENT DE LA BARRE

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// ------------------------------------------------------------
// lorsque la barre de redimensionnement est en train de bouger
// ------------------------------------------------------------
private: System::Void sctInfos_SplitterMoving(System::Object^ sender,
System::Windows::Forms::SplitterCancelEventArgs^ e)
{ // curseur avec flèches Nord/Sud
spcInfos->Cursor= System::Windows::Forms::Cursors::SizeNS;
}

// ------------------------------------------------------
// lorsque la barre de redimensionnement a fini de bouger
// ------------------------------------------------------
private: System::Void sctInfos_SplitterMoved(System::Object^ sender,
System::Windows::Forms::SplitterEventArgs^ e)
{ //curseur avec flèches dans les 4 directions
spcInfos->Cursor= System::Windows::Forms::Cursors::SizeAll;
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 24


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 25/103

2- Les composants d’édition et de saisie de texte

2.1- Le composant LABEL

 MEMBRES DE LA CLASSE LABEL (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.label_members(VS.80).aspx

La classe Label permet d’afficher du texte. Il sert couramment à


donner un intitulé ou un titre à un autre composant.

2.1.1- Un label pour donner des informations

Comment changer l’aspect d’un label ?

 Propriétés :

− BackColor : couleur d'arrière-plan du label.


− Padding : espacement entre les bords du label et son contenu.
− BorderStyle : type de bordure du label.
− FlatStyle : apparence du label. Valeurs possibles :
Flat Le label s'affiche sous une forme à deux dimensions.
Popup Le label s'affiche sous une forme à deux dimensions et, si la souris arrive
à sa hauteur, il prend alors une forme à trois dimensions.
Standard Le label s'affiche sous une forme à trois dimensions.
System L'apparence du label est déterminée par l’OS.

− Image : image affichée dans le label.


− ImageAlign : façon dont l’image est affichée.
− ImageList : composant imagelist avec des images pour le label. Pour utiliser ces
images, il faut aussi fixer les propriétés ImageIndex ou ImageKey. Quelques propriétés :
− ImageIndex : indice de l’image (dans l’imagelist associé) à afficher dans le label.
− ImageKey : nom de l’image (de l’imagelist) à afficher dans le label.

− Font : police du texte affiché par le label.


− ForeColor : couleur du texte dans le label.
− Text : texte dans le label.
− TextAlign : alignement du texte dans le label.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 25


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 26/103

2.2- Le composant TEXTBOX


 MEMBRES DE LA CLASSE TEXTBOX (espace de noms System::Windows::Controls) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.textbox_members(VS.80).aspx

Le contrôle TextBox est le contrôle par excellence qui permet la


saisie, sur une seule ligne ou multiligne pour des longs textes.

2.2.1- L’apparence d’une textbox


Comment changer l’aspect d’une textbox ?
 Propriétés :
− BackColor : couleur d'arrière-plan de la textbox.
− BorderStyle : type de bordure de la textbox.
− Text : texte dans la textbox. Exemple (textbox multilignes, des passages à la ligne) :
txtFile→Text = "CONTENU DU FICHIER\r\n" + "___________________";
txtFile→Text = txtFile→Text + Environment::NewLine + Environment::NewLine;
− Font : police du texte affiché par la textbox.
− ForeColor : couleur du texte dans la textbox.
− TextAlign : façon dont le texte est aligné.
− MaxLength : maximum de caractères que l'utilisateur peut taper dans la textbox.
− Multiline : indique s'il s'agit d'une textbox multiligne.
− Lines : lignes de texte contenues dans une textbox.
− AcceptsReturn : indique si le fait d'appuyer sur ENTRÉE dans un contrôle TextBox
multiligne entraîne la création d'une nouvelle ligne.
− AcceptsTab : indique si le fait d'appuyer sur TAB dans un contrôle zone de texte
multiligne effectue une tabulation.
− ScrollBars : barres de défilement qui doivent apparaître dans une textbox multiligne.
− WordWrap : indique si une textbox multiligne renvoie les mots au début de la ligne
suivante lorsque cela est nécessaire.
− CharacterCasing : définit si la textbox modifie la casse des caractères au fur et à
mesure de la saisie.
− ReadOnly : indique si le texte est en lecture seule.
− HideSelection : indique si le texte sélectionné dans la textbox reste en surbrillance
quand le focus passe à un autre contrôle.
− PasswordChar : caractère servant à masquer les caractères d'un mot de passe dans une
textbox sur une ligne.
− UseSystemPasswordChar : valeur indiquant si le texte doit apparaître comme caractère
de mot de passe par défaut.
− AutoCompleteMode : type de saisie de texte dans la textbox. Valeurs possibles :
Append Ajoute le reste de la chaîne des candidats les plus probables aux
caractères existants, avec les caractères ajoutés en surbrillance.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 26


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 27/103

None Désactive la fonctionnalité de saisie semi-automatique.


Suggest Affiche la liste déroulante auxiliaire (chaînes de saisie semi-
automatique suggérées) associée au contrôle d'édition.
SuggestAppend Applique à la fois les options Suggest et Append.
− AutoCompleteSource : source de chaînes complètes utilisées pour la saisie semi-
automatique. Quelques valeurs possibles :
AllSystemSources Spécifie l'équivalent de FileSystem et AllUrl comme source.
AllUrl Source= HistoryList et RecentlyUsedList.
CustomSource Sources = chaînes d'un AutoCompleteStringCollection intégré.
FileSystem Spécifie le système de fichiers comme source.
FileSystemDirectories seuls les noms de répertoire (pas les noms de fichier) complétés.
ListItems Source= éléments d’une combobox.
None aucun AutoCompleteSource n'est en cours d'utilisation.
− AutoCompleteCustomSource : collection de chaînes personnalisées à utiliser lorsque
la propriété AutoCompleteSource a la valeur CustomSource.

2.2.2- Le fonctionnement d’une textbox (conversion numériques)


Comment récupérer et traiter le texte d’une textbox ?
 Propriétés :
− TabStop : indique si l'utilisateur peut donner le focus à la textbox avec TAB.
− TabIndex : ordre de tabulation de la textbox dans son conteneur.
 Méthodes :
− AppendText(String ^) : ajoute du texte au texte en cours dans une zone de texte.
− Clear() : efface tout le texte du textbox.
− Undo() : annule la dernière modification apportée dans la zone de texte.
 Evènements :
− TextChanged : lorsque la valeur de la propriété Text change.

Comment faire des conversions à partir du text d’une textbox ?


VOIR L’EXEMPLE SUIVANT. Liens pour les conversion avec le .Net Framework :
http://msdn.microsoft.com/fr-fr/library/08h86h00(VS.80).aspx
http://msdn.microsoft.com/fr-fr/library/zf50za27(VS.80).aspx
http://msdn.microsoft.com/fr-fr/library/system.convert(VS.80).aspx

Exemple : CONVERSION DU TEXTE D’ UNE TEXTBOX DANS TOUS LES TYPES

// -------------------------------------------------------------
// conversion numérique de texte au fur et à mesure de sa saisie
// -------------------------------------------------------------
private: System::Void txtNombre_TextChanged(System::Object^ sender,
System::EventArgs^ e) {
CONVERSIONS EN ENTIERS :
Int32 entier32; /* long*/ UInt32 uentier32; /*unsigned long*/ Int16
entier16; /* short*/ UInt16 uentier16; /*unsigned short*/ Byte uoctet;
SByte octet; String ^info; // message d'information

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 27


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 28/103

// conversion en entier 32 bits signé


if ( Int32::TryParse(txtNombre-> Text,entier32) == true )
info= "Conversion Int32 réussie de " + entier32.ToString()+"\r\n";
else info= "Echec conversion Int32 !!"+"\r\n";
if ( UInt32::TryParse(txtNombre->Text,uentier32) == true ) // 32 bits non sig
info=info+"Conversion UInt32 réussie de " + uentier32.ToString()+"\r\n";
else info=info+"Echec conversion UInt32 !!"+"\r\n";

// conversion en entier 16 bits signé


if ( Int16::TryParse(txtNombre->
Text,entier16) == true )
info=info+"Conversion Int16 réussie
de " + entier16.ToString()+ "\r\n";
else info=info+"Echec conversion Int16
!!"+"\r\n";
if ( UInt16::TryParse(txtNombre->
Text,uentier16)==true) //16 bits non sig
info=info+"Conversion UInt16
réussie de"+uentier16.ToString()+"\r\n";
else info=info+"Echec conversion UInt16
!!"+"\r\n";
// conversion contenu textbox en entier 8 bits non signé
if ( Byte::TryParse(txtNombre->Text,uoctet) == true )
info=info+"Conversion Byte réussie de " + uoctet.ToString()+"\r\n";
else info=info+"Echec conversion Byte !!"+"\r\n";
if ( SByte::TryParse(txtNombre->Text,octet) == true ) // entier 8 bits signé
info=info+"Conversion SByte réussie de " + octet.ToString()+"\r\n";
else info=info+"Echec conversion SByte !!"+"\r\n";

CONVERSION EN CARACTERE :
Char carac; // conversion contenu textbox en caractère
if ( Char::TryParse(txtNombre->Text,carac) == true )
info=info+"Conversion Char réussie de " + carac.ToString()+"\r\n";
else info=info+"Echec conversion Char !!"+"\r\n";

CONVERSIONS EN REELS :
Single reel32; /* float*/ Double reel64; /* double*/
// conversion en réel simple précision
if(Single::TryParse(txtNombre->Text,reel32))
info=info+"Conversion Single réussie de
" + reel32.ToString()+"\r\n";
else info=info+"Echec conversion Single!!"+
"\r\n";
// conversion en réel double précision
if ( Double::TryParse(txtNombre->
Text,reel64))
info=info+"Conversion Double réussie de
" + reel64.ToString()+"\r\n";
else info=info+"Echec conversion Double
!!"+"\r\n";
// affichage informations sur les conversions effectuées
MessageBox::Show(info);
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 28


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 29/103

2.3- Le composant MASKEDTEXTBOX


 MEMBRES DE LA CLASSE MASKEDTEXTBOX ( System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.maskedtextbox_members(VS.80).aspx

La classe MaskedTextBox est un contrôle d'édition qui permet de définir des


masques de chaînes pour contrôler le format de sortie de la valeur saisie.

2.3.1- L’apparence d’un maskedtextbox


Comment changer l’aspect d’un maskedtextbox ?
 Propriétés :
− BackColor : couleur d'arrière-plan de la zone de la maskedtextbox.
− BorderStyle : type de bordure de la maskedtextbox.
− Font : police du texte affiché par la maskedtextbox.
− ForeColor : couleur du texte dans la maskedtextbox.
− Text : texte dans la maskedtextbox.
− TextAlign : façon dont le texte est aligné.
− ReadOnly : indique si le texte est en lecture seule.
− AsciiOnly : la maskedtextbox accepte des caractères en dehors des caractères ASCII.
− PasswordChar : caractère à afficher dans la substitution pour l'entrée utilisateur.
− Mask : masque de saisie ; la chaîne vide autorise toute entrée. Indications :
0 Chiffre, obligatoire. Cet élément accepte tout chiffre entre 0 et 9.
9 Chiffre ou espace, facultatif.
# Chiffre ou espace, facultatif ; signes plus (+) et moins (-) autorisés.
L Lettre, obligatoire. Restreint l'entrée aux lettres ASCII a-z et A-Z.
? Lettre, facultatif. Restreint l'entrée aux lettres ASCII a-z et A-Z.
& Caractère, obligatoire. Si AsciiOnly= true, cet élément vaut "L".
C Caractère (sauf de contrôle), facultatif. Si AsciiOnly= true, "C" vaut "?".
A ou a Alphanumérique, facultatif. Si AsciiOnly= true, cet élément vaut "?".
. Espace réservé aux décimales.
, Espace réservé aux milliers.
: Séparateur horaire.
/ Séparateur de date.
$ Symbole monétaire.
< Convertit tous les caractères qui suivent en minuscules.
> Convertit tous les caractères qui suivent en majuscules.
| Désactive un > ou < effectué précédemment.
\ Échappement : remplace un caractère de masque par un littéral.
autres Littéraux qui apparaissent tels quels dans la maskedtextbox.
− RejectInputOnFirstFailure : arrêt analyse entrée utilisateur après 1° entrée non valide.
− BeepOnError : déclenchement de signal sonore pour une séquence de touches refusée.
− TabStop : indique si l'utilisateur peut donner le focus à la maskedtextbox avec TAB.
− TabIndex : ordre de tabulation de la maskedtextbox dans son conteneur.
 Evènements :
− TextChanged : lorsque la valeur de la propriété Text change.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 29


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 30/103

2.4- Le composant RICHTEXTBOX

 MEMBRES DE LA CLASSE RICHTEXTBOX (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.richtextbox_members(VS.80).aspx

La classe RichTextBox est une extension du TextBox, qui permet une


gestion du format RTF (pour avoir du gras, souligné, etc ...).

2.4.1- L’apparence d’un richtextbox

Comment changer l’aspect d’un richtextbox ?


 Propriétés :
− BackColor : couleur d'arrière-plan de la richtextbox.
− BorderStyle : type de bordure de la richtextbox.
− ScrollBars : barres de défilement apparaîssant dans une richtextbox multiligne.
− Dock : ancre la richtextbox dans le formulaire. Valeurs possibles :
Bottom bord inférieur du contrôle ancré à la partie inférieure du formulaire.
Fill bords du contrôle ancrés aux bords du formulaire.
Left bord gauche ancré au bord gauche du formulaire.
None Le statusstrip n'est pas ancré.
Right bord droit du contrôle ancré au bord droit du formulaire.
Top bord supérieur du contrôle ancré à la partie supérieure du formulaire.
− Text : texte dans la richtextbox
− Font : police du texte affiché par la richtextbox.
− ForeColor : couleur du texte dans la richtextbox.
− MaxLength : maximum de caractères que l'utilisateur peut taper dans la richtextbox.
− ReadOnly : indique si le texte est en lecture seule.
− Multiline : indique s'il s'agit d'une richtextbox multiligne.
− WordWrap : indique si une richtextbox multiligne renvoie les mots au début de la ligne
suivante lorsque cela est nécessaire.
− AcceptsTab : indique si le fait d'appuyer sur TAB effectue une tabulation.
− RightMargin : marge non visible à droite ; peut fixer une largeur de ligne maximale.
− ShowSelectionMargin : indique si une marge de sélection s'affiche.
− HideSelection : indique si le texte sélectionné dans la richtextbox reste en surbrillance
quand le focus passe à un autre contrôle.
− ContextMenuStrip : ContextMenuStrip associé à la richtextbox.
− DetectUrls : indique si la richtextbox met automatiquement en forme les URL entrées.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 30


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 31/103

2.4.2- Le fonctionnement d’un richtextbox


Comment récupérer et traiter le texte d’un richtextbox ?
 Propriétés :
− Lines : lignes de texte contenues dans une richtextbox.
− SelectedText : texte sélectionné dans la richtextbox.
− SelectedRtf : texte mis en forme au format RTF actuellement sélectionné.
− Rtf : texte dans la richtextbox, y compris tous les codes RTF.
− ZoomFactor : niveau de zoom actuel dans la richtextbox.
− SelectionProtected : indique si la sélection de texte actuelle est protégée.
− SelectionLength : nombre de caractères sélectionnés dans la richtextbox.
− SelectionFont : police du texte de la sélection actuelle ou du point d'insertion. VOIR
EXEMPLE PLUS BAS. Membres de Font : http://msdn.microsoft.com/fr-
fr/library/system.drawing.font_members(VS.80).aspx
− SelectionAlignment : alignement à appliquer à la sélection. Exemple :
rtxtSaisie→SelectionAlignment = HorizontalAlignment::Center ; Valeurs possibles :
Center Le texte est aligné au centre de la richtextbox.
Left Le texte est aligné à gauche de la richtextbox.
Right Le texte est aligné à droite de la richtextbox.
− SelectionBackColor : couleur du texte sélectionné. Exemple :
rtxtSaisie→SelectionBackColor = Color::Red ; Valeurs possibles de Color :
http://msdn.microsoft.com/fr-fr/library/system.drawing.color_members(VS.80).aspx
− SelectionColor : couleur du texte de la sélection actuelle ou du point d'insertion.
− SelectionBullet : style de liste à puces appliqué à la sélection actuelle.
− BulletIndent : mise en retrait utilisée lorsque le style de liste à puces est appliqué.
− SelectionIndent : longueur de la mise en retrait de la ligne d'où la sélection démarre.
− SelectionHangingIndent : distance entre les bords gauche de la 1° ligne de texte dans
le paragraphe sélectionné et des lignes de texte suivantes dans le même paragraphe.
− SelectionRightIndent : distance entre les bords droits richtextbox-sélection.
− TabStop : indique si l'utilisateur peut donner le focus à la richtextbox avec TAB.
− TabIndex : ordre de tabulation de la richtextbox dans son conteneur.
 Méthodes :
− Clear() : efface tout le texte de la richtextbox.
− AppendText() : ajoute du texte à la zone de texte.
− Copy() : copie la sélection active de la zone de texte vers le Presse-papiers.
− Cut() : déplace la sélection active entre la zone de texte et le Presse-papiers.
− CanPaste() : détermine si les informations du Presse-papiers peuvent-être collées.
− Paste() : colle le contenu du Presse-papiers dans la richtextbox.
− Undo() : annule la dernière modification apportée dans la zone de texte.
− Redo() : applique à nouveau la dernière opération qui a été annulée dans la richtextbox.
− LoadFile() : charge le contenu d'un fichier dans la richtextbox.
− SaveFile() : enregistre le contenu de la richtextbox dans un fichier.
 Evènements :
− TextChanged : lorsque la valeur de la propriété Text change.
− SelectionChanged : suite à la modification du texte sélectionné dans la richtextbox.
− LinkClicked : lorsque l'utilisateur clique sur un lien dans le texte de la richtextbox.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 31


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 32/103

Exemple : SAISIE DE TEXTE AVEC POSSIBILITE DE MODIFIER SON STYLE

MISE EN GRAS/NORMAL D’UNE SELECTION DE TEXTE :


// --------------------------------------------------------------------
// l'utilisateur veut mettre en gras ou en normal sa sélection de texte
// --------------------------------------------------------------------
private: System::Void grasToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{ // récupération de la police de la zone sélectionnée
System::Drawing::Font^currentFont = rtxtSaisie->SelectionFont;
// déclaration du nouveau style à appliquer à la sélection
System::Drawing::FontStyle newFontStyle;
// si la sélection est en gras
if (rtxtSaisie->SelectionFont->Bold)
{ // définir un style normal
newFontStyle = FontStyle::Regular;
//changer intitulé menu contextuel
grasToolStripMenuItem->Text="gras";
}
else // si sélection pas en gras
{ // définir un style gras
newFontStyle = FontStyle::Bold;
//changer intitulé menu contextuel
grasToolStripMenuItem->Text="normal";
}
// application du nouveau style à la
police du texte sélectionné
rtxtSaisie->SelectionFont = gcnew
System::Drawing::Font( currentFont->
FontFamily,currentFont->
Size,newFontStyle );

// la police passe en vert


rtxtSaisie->SelectionColor =
Color::Green;

DEPLACER UNE SELECTION DE TEXTE :


// ------------------------------------
// l'utilisateur veut couper
private: System::Void
couperToolStripMenuItem_Click(System::O
bject^ sender, System::EventArgs^ e)
{ rtxtSaisie->Cut(); }
// ------------------------------------
// l'utilisateur veut coller
private: System::Void
collerToolStripMenuItem_Click(System::O
bject^ sender, System::EventArgs^ e)
{ rtxtSaisie->Paste(); }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 32


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 33/103

2.5- Le composant NUMERICUPDOWN


 MEMBRES DE LA CLASSE NUMERICUPDOWN (espace de noms
System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.numericupdown_members(VS.80).aspx

Le contrôle NumericUpDown permet d'incrémenter ou de décrémenter une


valeur numérique à l'aide de boutons (flèche vers le haut ou vers le bas).

2.5.1- L’apparence d’un numericupdown


Comment changer l’aspect d’un numericupdown ?
 Propriétés :
− BackColor : couleur d'arrière-plan de la zone de sélection numérique.
− BorderStyle : type de bordure de la zone de sélection numérique.
− UpDownAlign : alignement des boutons HAUT et BAS sur le control.
− ReadOnly : indique si le texte ne peut être modifié qu'avec les boutons HAUT et BAS.
− InterceptArrowKeys : indique si l'utilisateur peut utiliser les touches HAUT et BAS
pour sélectionner des valeurs.
− Font : police du texte affiché par la zone de sélection numérique.
− ForeColor : couleur du texte dans la zone de sélection numérique.
− TextAlign : alignement de texte dans la zone de sélection numérique.
− DecimalPlaces : nombre de décimales à afficher dans la zone de sélection numérique
− Hexadecimal : indique si la zone de sélection numérique utilise le format hexadécimal.
− ThousandsSeparator : indique si le séparateur des milliers est affiché.
− Minimum : valeur minimale de la zone de sélection numérique.
− Maximum : valeur maximale de la zone de sélection numérique.

2.5.2- Le fonctionnement d’un numericupdown


Comment actionner un numericupdown ?
 Propriétés :
− Value : valeur assignée à la zone de sélection numérique.
− Increment : valeur pour incrémenter ou décrémenter la zone de sélection numérique
lors d'un clic sur les boutons haut ou bas.
− TabStop : indique si l'utilisateur peut donner le focus au control avec TAB.
− TabIndex : ordre de tabulation de la zone de sélection numérique dans son conteneur.
 Méthodes :
− DownButton() : décrémente la valeur de la zone de sélection numérique.
− UpButton() : incrémente la valeur de la zone de sélection numérique.
 Evènements :
− ValueChanged : se produit lorsque la propriété Value a été modifiée.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 33


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 34/103

3- Les composants de saisie d’options

3.1- Le composant CHECKBOX


 MEMBRES DE LA CLASSE CHECKBOX (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.checkbox_members(VS.80).aspx

La classe CheckBox est une case à cocher dérive qui permet de faire un choix
d’options avec le click gauche de la souris.

Une case à cocher inaccessible est grisée.

3.1.1- L’apparence d’un checkbox


Comment changer l’aspect d’un checkbox ?
 Propriétés :
− Appearance : présentation d'une checkbox sous forme de case à cocher ou de bouton.
− FlatStyle : apparence de la checkbox. Valeurs possibles :
Flat la checkbox s'affiche sous une forme à deux dimensions.
Popup la checkbox s'affiche sous une forme à deux dimensions et, si la souris
arrive à sa hauteur, il prend alors une forme à trois dimensions.
Standard la checkbox s'affiche sous une forme à trois dimensions.
System L'apparence de la checkbox est déterminée par l’OS.
− FlatAppearence : apparence de la bordure et couleurs pour indiquer les états
d'activation du bouton et de la souris (propriétés FlatStyle=Flat et Appearance=Button) :
⋅ Propriété BorderColor : couleur de bordure du bouton.
⋅ Propriété BorderSize : taille, en pixels, de la bordure du bouton.
⋅ Propriété MouseDownBackColor : couleur du bouton si un clic est fait dessus.
⋅ Propriété MouseOverBackColor : couleur du bouton si la souris passe dessus.
− AutoSize : indique si la checkbox est redimensionnée en fonction de son contenu.
− Padding : espacement interne, en pixels, entre le contenu de la checkbox et ses bords.
− BackColor : couleur d'arrière-plan de la checkbox.
− BackgroundImage : image d'arrière-plan affichée dans la case à cocher.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.
− CheckAlign : alignement horizontal et vertical d'une coche dans une checkbox.
− Text : texte de la checkbox.
− TextAlign : alignement du texte.
− Font : police du texte affiché sur la checkbox.
− ForeColor : couleur du texte.
− TextImageRelation : positions relatives du texte et de l'image sur la checkbox.
− Image : image affichée sur la checkbox.
− ImageAlign : façon dont l’image est affichée.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 34


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 35/103

− ImageList : composant imagelist avec des images pour la checkbox. Pour utiliser ces
images, il faut aussi fixer les propriétés ImageIndex ou ImageKey. Quelques propriétés :
− ImageIndex : indice de l’image (dans l’imagelist associé) à afficher dans la checkbox.
− ImageKey : nom de l’image (de l’imagelist) à afficher dans la checkbox.

3.1.2- Le fonctionnement de checkbox


Comment récupérer la sélection d’un checkbox ?
 Propriétés :
− ThreeState : indique si la checkbox autorise trois états d'activation au lieu de deux.
− AutoCheck : indique si les propriétés Checked ou CheckState et l'apparence de la
checkbox sont automatiquement modifiées lorsque l'utilisateur clique.
− CheckState : indique si la checkbox est à l'état coché ou décoché par défaut.
− Checked : indique si la checkbox est cochée ou décochée.
− Enabled : indique si la checkbox peut interagir avec l’utilisateur (grisé ou non).
− TabStop : indique si l'utilisateur peut donner le focus à la checkbox avec TAB.
− TabIndex : ordre de tabulation de la checkbox dans son conteneur.
 Evènements :
− CheckedChanged : se produit lorsque la valeur de la propriété Checked change.

Exemple : COCHAGE/DECOCHAGE MULTIPLE DE CASES A COCHER

REACTION COMMUNE A UN CLIC SUR UNE DES CHECKBOX :


// -------------------------------------------------------------
// gestionnaire d'évènement commun à toutes les cases à cocher
/* POUR DONNER UN NOM GENERIQUE AU GESTIONNAIRE D'EVENEMENT :
1) changer nom de la fonction ici: Admin_CheckedChanged->User_CheckedChanged
2) lier ce gestionnaire aux évènements CheckedChanged de toutes les
CheckBox: les ajouter dans la fenêtre de propriété, bouton évènement, combobox
en face du CheckedChanged */
// -------------------------------------------------------------
private: System::Void User_CheckedChanged(System::Object^ sender,
System::EventArgs^ e) {

// conversion du composant qui a reçu


l'évènement en CheckBox
CheckBox^caseCocher=safe_cast<CheckBox^>(sender)
;

// affichage coché ou décoché, en fonction du


nouvel état d'activation de la CheckBox
if ( caseCocher->Checked == true )
MessageBox::Show(caseCocher->Text+" coché");
else
MessageBox::Show(caseCocher->Text+"décoché");

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 35


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 36/103

3.2- Le composant CHECKEDLISTBOX


 MEMBRES DE LA CLASSE CHECKEDLISTBOX (System::Windows::Forms) :
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.checkedlistbox_members(VS.80).aspx

La classe CheckedListBox est une liste à cocher, qui permet une sélection
unique ou des sélections multiples facilitées, en proposant les mêmes
fonctionnalités qu'une listbox. Un point intéressant par rapport à la checkbox
est que ce composant est scrollable.

3.2.1- L’apparence d’un checkedlistbox


Comment changer l’aspect d’un checkedlistbox ?
 Propriétés :
− BackColor : couleur d'arrière-plan de la liste à cocher.
− BorderStyle : type de bordure de la liste à cocher.
− IntegralHeight : indique si le contrôle doit être redimensionné pour éviter d'afficher
partiellement des éléments.
− HorizontalScrollbar : indique si une barre de défilement horizontale est affichée.
− HorizontalExtent : largeur sur laquelle la barre de défilement horizontale peut défiler.
− ScrollAlwaysVisible : indique si la barre de défilement verticale est toujours affichée.
− MultiColumn : indique si la liste à cocher prend en charge les colonnes multiples.
− ColumnWidth : largeur des colonnes dans une liste à cocher multicolonne.
− CheckOnClick : indique si la case à cocher doit être basculée suite à un clic dessus.
− Font : police du texte affiché dans la liste à cocher.
− ForeColor : couleur du texte.
− Sorted : indique si les éléments de la liste à cocher sont triés dans l'ordre alphabétique.

3.2.2- Le fonctionnement d’un checkedlistbox


Comment récupérer la sélection dans un checkedlistbox ?
 Propriétés :
− SelectedIndex : indice de l'élément actuellement sélectionné dans la liste à cocher.
− SelectedItem : intitulé de l’élément actuellement sélectionné dans la liste à cocher.
− Items : collection d'éléments de la liste à cocher : http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.checkedlistbox.objectcollection_members(VS.80).aspx
− TabStop : indique si l'utilisateur peut donner le focus à la liste à cocher avec TAB.
− TabIndex : ordre de tabulation de la liste à cocher dans son conteneur.
 Méthodes :
− GetItemChecked(index) : indique si l'élément spécifié par l’index est coché.
 Evènements :
− ItemCheck : se produit lorsque l'état d'activation d'un élément de la liste à cocher
change. Le paramètre ItemCheckEventArgs de son gestionnaire d’évènement a pour
Propriétés : l'indice de la case à cocher sélectionnée (Index), la valeur précédente de
cette case (CurrentValue) et sa nouvelle valeur (NewValue) : CheckState::Checked,
CheckState::Unchecked.
− SelectedIndexChanged : se produit lorsque la propriété SelectedIndex a été modifiée.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 36


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 37/103

Exemple : COCHAGE/DECOCHAGE MULTIPLE DE CASES A COCHER

RECUPERATION DES INFORMATIONS SUR LA CASE CLIQUE PAR LA LISTE A COCHER :


// --------------------------------------------------------------
// Récupération de la case cliquée et de son état (coché/décoché)
// --------------------------------------------------------------
private: System::Void chklMatieres_SelectedIndexChanged(System::Object^
sender, System::EventArgs^ e) {
// construction chaîne d'information
String ^info= "sélection : ";
// récupération indice de la case
cliquée dans la liste à cocher
info= info + chklMatieres->
SelectedIndex.ToString();
// récupération intitulé case cliquée
info= info + " - " + chklMatieres->
SelectedItem;
// récupération de l'état de la case
cliquée : cochée ou non
if ( chklMatieres-> GetItemChecked(
chklMatieres-> SelectedIndex)==true )
info= info + " - coché";
else
info= info + " - décoché";
MessageBox::Show(info);
}

RECUPERATION DES INFORMATIONS SUR LA CASE CLIQUE PAR UN EVENEMENT :


// --------------------------------------------------------------
// Récupération de la case cliquée et de son état (coché/décoché)
// --------------------------------------------------------------
private: System::Void chklMatieres_ItemCheck(System::Object^ sender,
System::Windows::Forms::ItemCheckEventArgs^ e) {

// construction chaîne d'information


String ^info= "sélection : ";
// récupération indice de la case
cliquée dans la liste à cocher
info= info + e->Index.ToString();
// récupération de l'intitulé de la
case cliquée
info= info + " - " + chklMatieres->
Items[e->Index]->ToString();

// récupération de l'état de la case


cliquée : cochée ou non
if(e->NewValue==CheckState::Checked)
info= info + " - coché";
else
info= info + " - décoché";

MessageBox::Show(info);
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 37


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 38/103

3.3- Le composant COMBOBOX


 MEMBRES DE LA CLASSE COMBOBOX (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.combobox_members(VS.80).aspx

La classe ComboBox est la combinaison d’une liste déroulante (ListBox) et d'une


zone d’édition (TextBox). Elle permet de faire un choix unique dans une liste de
choix.

3.3.1- L’apparence d’une combobox


Comment changer l’aspect d’une combobox ?
 Propriétés :
− BackColor : couleur d'arrière-plan de la combobox.
− IntegralHeight : redimensionnement pour éviter d'afficher des éléments partiellement.
− FlatStyle : apparence de la combobox. Valeurs possibles :
Flat la combobox s'affiche sous une forme à deux dimensions.
Popup la combobox s'affiche sous une forme à deux dimensions et, si la souris
arrive à sa hauteur, il prend alors une forme à trois dimensions.
Standard la combobox s'affiche sous une forme à trois dimensions.
System L'apparence de la combobox est déterminée par l’OS.
− MaxDropDownItems : maximum d'éléments pour la liste déroulante de la combobox.
− MaxLength : nombre maximal de caractères autorisés dans la zone d’édition.
− Sorted : indique si les éléments dans la combobox sont triés.
− Text : texte de la combobox.
− Font : police du texte.
− ForeColor : couleur du texte.
− AutoCompleteMode : type de saisie de texte dans la combobox. Valeurs possibles :
Append Ajoute le reste de la chaîne des candidats les plus probables aux
caractères existants, avec les caractères ajoutés en surbrillance.
None Désactive la fonctionnalité de saisie semi-automatique.
Suggest Affiche la liste déroulante auxiliaire (chaînes de saisie semi-
automatique suggérées) associée au contrôle d'édition.
SuggestAppend Applique à la fois les options Suggest et Append.
− AutoCompleteSource : source de chaînes complètes utilisées pour la saisie semi-
automatique. Quelques valeurs possibles :
AllSystemSources Spécifie l'équivalent de FileSystem et AllUrl comme source.
AllUrl Source= HistoryList et RecentlyUsedList.
CustomSource Sources = chaînes d'un AutoCompleteStringCollection intégré.
FileSystem Spécifie le système de fichiers comme source.
FileSystemDirectories seuls les noms de répertoire (pas les noms de fichier) complétés.
ListItems Source= éléments d’une combobox.
None aucun AutoCompleteSource n'est en cours d'utilisation.
− AutoCompleteCustomSource : collection de chaînes personnalisées à utiliser lorsque
la propriété AutoCompleteSource a la valeur CustomSource.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 38


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 39/103

3.3.2- Le fonctionnement d’une combobox

Comment récupérer la sélection dans une combobox ?


 Propriétés :
− DropDownStyle : style de la combobox.
Valeurs possibles :
DropDown La partie texte est modifiable. L'utilisateur doit cliquer sur le bouton
fléché pour afficher la partie liste.
DropDownList L'utilisateur ne peut pas modifier la partie texte. L'utilisateur doit
cliquer sur le bouton fléché pour afficher la partie liste, qui ne
s'affiche que si AutoCompleteMode est Suggest ou SuggestAppend.
Simple La partie texte est modifiable. La partie liste est toujours visible.

− Items : collection d'éléments de la combobox : http://msdn.microsoft.com/fr-


fr/library/system.windows.forms.combobox.objectcollection_members(VS.80).aspx

− SelectedIndex : indice de l'élément actuellement sélectionné dans la combobox.


− SelectedItem : intitulé de l’élément actuellement sélectionné dans la combobox.

− TabStop : indique si l'utilisateur peut aller sur la combobox avec TAB.


− TabIndex : ordre de tabulation de la combobox dans son conteneur.

 Evènements :
− SelectedIndexChanged : se produit lorsque la propriété SelectedIndex a été modifiée.
− TextChanged : se produit lorsque la valeur de la propriété Text est modifiée.

Exemple : RECUPERATION DU CHOIX DANS UNE COMBOBOX

L’UTILISATEUR PEUT CHOISIR UN PAYS DANS LA LISTE OU LE TAPER LUI-MEME DANS


LA ZONE D’EDITION :

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 39


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 40/103

REACTION A UN CHANGEMENT DE SELECTION DANS LA LISTE ET AFFICHAGE DANS


UNE MESSAGEBOX (CE GESTIONNAIRE N’EST PAS EXECUTE SI LE TEXTE EST MODIFIE
DANS LA ZONE D’EDITION) :
// -------------------------------------------------
// Récupération de l'élément choisi dans la combobox
// -------------------------------------------------
private: System::Void cbPays_SelectedIndexChanged(System::Object^ sender,
System::EventArgs^ e)
{ // construction chaîne d'information
String ^info= "sélection : ";
// récupération indice de l'élément cliqué dans la combobox
info= info + "("+ cbPays-> SelectedIndex.ToString() + ")";
// récupération intitulé option choisie
info= info + " - DANS LA LISTE : " + cbPays-> SelectedItem;
// récupération texte dans la zone d'édition
info= info + " - DANS LA ZONE DE TEXTE : " + cbPays-> Text;

MessageBox::Show(info); // affichage information


}

REACTION A UN CHANGEMENT DE TEXTE DANS LA ZONE D’EDITION ET AFFICHAGE


DANS UNE TEXTBOX (SEULE LA PROPRIETE TEXTE PERMET DE RECUPERER LE CHOIX
DE L’UTILISATEUR) :
// -------------------------------------------
// Récupération du texte tapé dans la combobox
// -------------------------------------------
private: System::Void cbPays_TextChanged(System::Object^ sender,
System::EventArgs^ e)
{ // construction chaîne d'information
String ^info= "sélection : ";
// récupération indice de l'élément cliqué dans la combobox
info= info + "("+ cbPays-> SelectedIndex.ToString() + ")";
// récupération intitulé option choisie
info= info + " - DANS LA LISTE : " + cbPays-> SelectedItem;
// récupération texte dans la zone d'édition
info= info + " - DANS LA ZONE DE TEXTE : " + cbPays-> Text;

txtInfo->Text= info; // affichage information


}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 40


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 41/103

3.4- Le composant LISTBOX


 MEMBRES DE LA CLASSE LISTBOX (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.listbox_members(VS.80).aspx

La classe ListBox permet d'afficher une liste d'éléments dans laquelle l'utilisateur
peut sélectionner un ou plusieurs éléments avec la souris.

3.4.1- L’apparence d’une listbox


Comment changer l’aspect d’une listbox ?
 Propriétés :
− BackColor : couleur d'arrière-plan de la listbox.
− BorderStyle : type de bordure de la listbox.
− MultiColumn : indique si la listbox prend en charge les colonnes multiples.
− ColumnWidth : largeur des colonnes dans une listbox multicolonne.
− Font : police du texte.
− ForeColor : couleur du texte.
− IntegralHeight : redimensionnement pour éviter d'afficher partiellement des éléments.
− HorizontalScrollbar : indique si une barre de défilement horizontale est affichée.
− HorizontalExtent : largeur sur laquelle la barre de défilement horizontale peut défiler.
− ScrollAlwaysVisible : indique si la barre de défilement verticale est toujours affichée.
− Items : collection d'éléments de la listbox : http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.listbox.objectcollection_members(VS.80).aspx
− Sorted : indique si les éléments dans la listbox sont triés.

3.4.2- Le fonctionnement d’une listbox


Comment récupérer la sélection dans une listbox ?
 Propriétés :
 SelectionMode : mode de sélection dans la listbox. Valeurs possibles :
MultiExtended sélections multiples avec les touches MAJ, CTRL et les flêches.
MultiSimple Plusieurs éléments peuvent être sélectionnés.
None Aucun élément ne peut être sélectionné.
One Un seul élément peut être sélectionné.
− SelectedIndex : indice de l'élément actuellement sélectionné dans la listbox.
− SelectedItem : intitulé de l’élément actuellement sélectionné dans la listbox.
− SelectedItems : collection des éléments actuellement sélectionnés dans la listbox.
− SelectedIndices : collection des indices des éléments sélectionnés dans la listbox.
− TabStop : indique si l'utilisateur peut aller sur la listbox avec TAB.
− TabIndex : ordre de tabulation de la listbox dans son conteneur.
 Méthodes :
− ClearSelected() : désélectionne tous les éléments de la listbox.
− GetSelected(index) : indique si l'élément spécifié est sélectionné.
 Evènements :
− SelectedIndexChanged : se produit lorsque la propriété SelectedIndex a été modifiée.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 41


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 42/103

Exemple : RECUPERATION DE SELECTIONS MULTIPLES DANS UNE LISTBOX

RECUPERATION D’UNE SIMPLE SELECTION DANS LA LISTBOX :


// ----------------------------------------------------------------
// Récupération du ou des élément(s) sélectionné(s) dans la listbox
// ----------------------------------------------------------------
private: System::Void lstPays_SelectedIndexChanged(System::Object^ sender,
System::EventArgs^ e) {

// chaîne d'info à afficher dans 1 TextBox


String ^info;
// si un seul élément a été sélectionné
if (lstPays->SelectedIndices->Count==1)
{ // construction chaîne d'information
info= "sélection unique : ";
//récupération indice élément cliqué
info= info + "("+ lstPays->
SelectedIndex.ToString() + ")";
// récupération intitulé option choisie
info= info + " - DANS LA LISTE : " +
lstPays-> SelectedItem;
}

RECUPERATION D’UNE SELECTION MULTIPLE DANS LA LISTBOX :


// si une sélection multiple a été opérée
if ( lstPays->SelectedIndices->Count > 1)
{ // récupération nombre de sélections
info=lstPays->SelectedIndices-> Count
.ToString() + " sélections : " + "\r\n";
//récupération indices élts cliqués
for (int i=0;i<lstPays->
SelectedIndices->Count;i++)
{ info= info + "("+ lstPays->
SelectedIndices[i].ToString() + ")";
// intitulé des options choisies
info= info + " - DANS LA LISTE : "
+ lstPays-> SelectedItems[i]+"\r\n";
}
}
// affichage infos dans une TextBox
txtInfo->Text= info;

// si frane choisie, MessageBox s'ouvre


if(lstPays->GetSelected(1)==true)
MessageBox::Show("France
sélectionnée !");
}
// ---------------------------------
// sélections de la ListBox effacées
// ---------------------------------
private: System::Void btnPays_Click
(System::Object^sender, System::EventArgs^e)
{ lstPays-> ClearSelected(); }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 42


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 43/103

3.5- Le composant RADIOBUTTON

 MEMBRES DE LA CLASSE RADIOBUTTON (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.radiobutton_members(VS.80).aspx

La classe RadioButton permet de réaliser des boutons radios, permettant de faire une
sélection unique parmi plusieurs choix.

3.5.1- L’apparence d’un radiobutton


Comment changer l’aspect d’un radiobutton ?
 Propriétés :
− Appearance : présentation d'un radiobutton sous forme de case à cliquer ou de bouton.
− FlatStyle : apparence du radiobutton. Valeurs possibles :
Flat le radiobutton s'affiche sous une forme à deux dimensions.
Popup le radiobutton s'affiche sous une forme à deux dimensions et, si la souris
arrive à sa hauteur, il prend alors une forme à trois dimensions.
Standard le radiobutton s'affiche sous une forme à trois dimensions.
System L'apparence du radiobutton est déterminée par l’OS.
− FlatAppearence : apparence de la bordure et couleurs pour indiquer les états
d'activation du bouton et de la souris (propriétés FlatStyle=Flat et Appearance=Button) :
⋅ Propriété BorderColor : couleur de bordure du bouton.
⋅ Propriété BorderSize : taille, en pixels, de la bordure du bouton.
⋅ Propriété MouseDownBackColor : couleur du bouton si un clic est fait dessus.
⋅ Propriété MouseOverBackColor : couleur du bouton si la souris passe dessus.
− AutoSize : indique si le radiobutton est redimensionnée en fonction de son contenu.
− Padding : espacement interne, en pixels, entre le contenu du radiobutton et ses bords.
− BackColor : couleur d'arrière-plan du radiobutton.
− BackgroundImage : image d'arrière-plan affichée dans le radiobutton.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.
− CheckAlign : alignement horizontal et vertical d'une coche dans un radiobutton.
− Text : texte du radiobutton.
− TextAlign : alignement du texte.
− Font : police du texte affiché sur le radiobutton.
− ForeColor : couleur du texte.
− TextImageRelation : positions relatives du texte et de l'image sur le radiobutton.
− Image : image affichée sur le radiobutton.
− ImageAlign : façon dont l’image est affichée.
− ImageList : composant imagelist avec des images pour le radiobutton. Pour utiliser ces
images, il faut aussi fixer les propriétés ImageIndex ou ImageKey. Quelques propriétés :
− ImageIndex : indice de l’image (dans l’imagelist associé) à afficher dans le radiobutton.
− ImageKey : nom de l’image (de l’imagelist) à afficher dans le radiobutton.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 43


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 44/103

3.5.2- Le fonctionnement de radiobutton


Comment récupérer la sélection avecdes radiobutton ?
 Propriétés :
− AutoCheck : indique si les propriétés Checked et l'apparence du radiobutton sont
automatiquement modifiées lorsque l'utilisateur clique.
− Checked : indique si le radiobutton est coché ou décoché.
− Enabled : indique si le radiobutton peut interagir avec l’utilisateur (grisé ou non).
− TabStop : indique si l'utilisateur peut donner le focus au radiobutton avec TAB.
− TabIndex : ordre de tabulation du radiobutton dans son conteneur.
 Evènements :
− CheckedChanged : se produit lorsque la valeur de la propriété Checked change.

Exemple : SELECTION D’UNE OPTION AVEC DES RADIOBUTTON

RECUPERATION DU CHOIX DE L’UTILISATEUR AVEC UN GESTIONNAIRE COMMUN :

// -------------------------------------------------------------
// gestionnaire d'évènement commun à tous les boutons radio
/* POUR DONNER UN NOM GENERIQUE AU GESTIONNAIRE D'EVENEMENT :
1) changer nom de la fonction ici:
rbtnAllemagne_CheckedChanged DEVIENT rbtnPays_CheckedChanged
2) lier ce gestionnaire aux évènements CheckedChanged de tous les
RadioButton: sélectionner ensemble tous les radiobutton, aller dans la
fenêtre de propriété, bouton évènement, en face du CheckedChanged choisir
le bon gestionnaire dans la liste */
// -------------------------------------------------------------
private: System::Void rbtnPays_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{ // conversion du composant qui a reçu l'évènement en RadioButton
RadioButton ^ boutonRadio=safe_cast<RadioButton^>(sender);

// affichage sélectionné ou dé-sélectionné, en fonction du nouvel état


d'activation du RadioButton
if ( boutonRadio->Checked == true )
txtInfo->Text=txtInfo->Text+boutonRadio->Text+" sélectionné\r\n";
else
txtInfo->Text=txtInfo->Text+boutonRadio->Text+"dé-sélectionné\r\n";
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 44


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 45/103

4- Les composants de choix d’actions sur l’interface

4.1- Le composant BUTTON

 MEMBRES DE LA CLASSE BUTTON (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.button_members(VS.80).aspx

La classe Button permet de déclencher une action, généralement par un click


avec le bouton gauche de la souris.

4.1.1- L’apparence d’un button

Comment changer l’aspect d’un button ?

 Propriétés :

− BackColor : couleur d'arrière-plan du bouton.


− BackgroundImage : image d'arrière-plan affichée dans le bouton.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.

− FlatStyle : style à deux dimensions du bouton.


Valeurs possibles :
Flat Le bouton s'affiche sous une forme à deux dimensions.
Popup Le bouton s'affiche sous une forme à deux dimensions et si la
souris passe au-dessus, il prend alors une forme à trois dimensions.
Standard Le bouton s'affiche sous une forme à trois dimensions.
System L'apparence du bouton est déterminée par l’OS.

− FlatAppearence : apparence de la bordure et couleurs utilisées pour indiquer l'état


d'activation du bouton et celui de la souris (si la propriété FlatStyle est Flat). Membres :
⋅ Propriété BorderColor : couleur de bordure du bouton.
⋅ Propriété BorderSize : taille, en pixels, de la bordure du bouton.
⋅ Propriété MouseDownBackColor : couleur du bouton si un clic est fait dessus.
⋅ Propriété MouseOverBackColor : couleur du bouton si la souris passe dessus.

− Text : texte sur le bouton.


− TextAlign : alignement du texte sur le bouton.
− Font : police du texte affiché sur le bouton.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 45


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 46/103

− ForeColor : couleur du texte sur le bouton.


− Padding : position du texte du bouton dans le bouton.
− UseMnemonic : indique si un et commercial (&) peut figurer dans le texte du bouton.
− TextImageRelation : positions relatives du texte et de l'image sur le bouton.

− Image : image affichée sur le bouton.


− ImageAlign : façon dont l’image est affichée.
− ImageList : composant imagelist avec des images pour le bouton. Pour utiliser ces
images, il faut aussi fixer les propriétés ImageIndex ou ImageKey. Quelques propriétés
de cette classe :
⋅ ColorDepth : profondeur (nombre) de couleur disponibles pour les images.
⋅ TransparentColor : couleur à traiter comme transparente.
⋅ Imagesize : taille des images dans la liste d'images, 16x16 ici.
⋅ Images : collection d’images de l’imagelist. Renseigner la propriété Name de
chaque image, afin d'y accéder facilement par la suite (correspond au Key) :
imgPC→Images["RAM"] ou imgPC→Images[0].
− ImageIndex : indice de l’image (dans l’imagelist associé) à afficher dans le bouton.
− ImageKey : nom de l’image (de l’imagelist) à afficher dans le bouton.

− AutoSize : indique si le bouton est redimensionné en fonction de son contenu.


− AutoSizeMode : mode qui permet de redimensionner automatiquement le bouton.
Valeurs possibles :
GrowAndShrink Le bouton s’agrandit ou diminue pour s'adapter à son contenu.
GrowOnly Le bouton s'agrandit autant que nécessaire pour s'adapter à son
contenu mais ne diminue pas en-dessous de sa propriété Size.

− Cursor : curseur qui est affiché lorsque le pointeur de la souris se trouve sur le bouton.

4.1.2- Le fonctionnement d’un button

Comment traiter l’action sur un button ?


 Propriétés :

− TabStop : indique si l'utilisateur peut octroyer le focus au bouton avec la touche TAB.
− TabIndex : ordre de tabulation du bouton dans son conteneur.

− DialogResult : valeur qui est retournée au formulaire parent lorsque l'utilisateur clique
sur le bouton.

 Méthodes :
− Focus() : définit le focus d'entrée sur le bouton.
 Evènements :
− Click : se produit suite à un clic sur le bouton.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 46


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 47/103

4.2- Le composant MENUSTRIP

 MEMBRES DE LA CLASSE MENUSTRIP (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.menustrip_members(VS.80).aspx

La classe MenuStrip permet de créer des menus.

Les noms des menus sont écrits directement sur la barre du


menu dans le concepteur. Il est possible d'associer une image à
un élément de menu.

Ne renommer que le composant MenuStrip principal,


avant d’ajouter les éléments de menu.

4.2.1- La configuration d’un menustrip

Comment remplir un menustrip ?


 Propriétés :

− BackColor : couleur d'arrière-plan du menu.


− BackgroundImage : image d'arrière-plan affichée dans le menu.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.

− Dock : ancre la statusstrip respectivement en bas, à gauche, à droite ou en haut du


formulaire. Valeurs possibles :
Bottom bord inférieur du contrôle ancré à la partie inférieure du formulaire.
Fill bords du contrôle ancrés aux bords du formulaire.
Left bord gauche ancré au bord gauche du formulaire.
None Le statusstrip n'est pas ancré.
Right bord droit du contrôle ancré au bord droit du formulaire.
Top bord supérieur du contrôle ancré à la partie supérieure du formulaire.

− LayoutStyle : indique comment les éléments sont disposés sur le menustrip.


Valeurs possibles :
Flow flux horizontal ou vertical des éléments.
HorizontalStackWithOverflow disposition horizontale avec dépassement éventuel.
StackWithOverflow disposition automatique des éléments.
Table alignement à gauche des éléments.
VerticalStackWithOverflow disposition verticale des éléments avec un centrage
dans le statusstrip et dépassement éventuel.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 47


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 48/103

− RenderMode : style de peinture de la barre de statut.


Valeurs possibles : ManagerRenderMode, Professional, System.
− Padding : espacement interne, en pixels, entre le contenu du toolstrip et ses bords.

− Text : intitulé du menu (en haut). & devant un caractère dans Text indique la lettre à
mettre après la touche ALT pour accéder à ce menu, en cas de panne de souris.
− Font : police du texte affiché dans le menu.
− TextDirection : orientation du texte.
Valeurs possibles :
Horizontal orientation horizontale du texte.
Vertical270 le texte doit pivoter de 270 degrés.
Vertical90 le texte doit pivoter de 90 degrés

− ShowItemToolTips : indique si les info-bulles sont affichées pour le menustrip.

− Items : collection des éléments (ToolStripItem) qui appartiennent à un menustrip :


ToolStripMenuItem, ToolStripComboBox ou ToolStripTextBox.

⋅ Item ToolStripComboBox : zone de texte avec liste déroulante contenue


dans un menustrip. Cette classe possède différents
membres ((http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripcombobox_members(VS.80).aspx) :
VOIR le paragraphe sur le composant ToolStrip.

⋅ Item ToolStripTextBox : zone de texte contenue dans un menustrip. Cette


classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstriptextbox_members(VS.80).aspx) :
VOIR le paragraphe sur le composant ToolStrip.

⋅ Item ToolStripMenuItem : élément de menu contenue dans un menustrip.


Cette classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripmenuitem_members(VS.80).aspx) :

o Propriété BackColor : couleur d'arrière-plan de l’élément de menu.


o Propriété BackgroundImage : image d'arrière-plan.
o Propriété BackgroundImageLayout : affichage de cette image.

o Propriété Margin : espace entre l’item et les autres items adjacents.


o Propriété Padding : espace entre les bords du menuitem et son contenu.

o Propriété Font : police du texte affiché par l’élément de menu.


o Propriété ForeColor : couleur du texte dans l’élément de menu.
o Propriété Text : texte dans l’élément de menu.
o Propriété TextAlign : alignement du texte dans l’élément de menu.
o Propriété TextDirection : orientation du texte.
o Propriété TextImageRelation : positions relatives du texte et de l'image.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 48


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 49/103

o Propriété DisplayStyle : définit si le texte et/ou les images sont affichés.


Valeurs possibles :
Image seule une image doit être affichée.
ImageAndText à la fois une image et le texte sont affichés.
None ni une image ni le texte ne sont affichés.
Text seul le texte est affiché.

o Propriété Image : image affichée dans l’élément de menu.


o Propriété ImageAlign : façon dont l’image est affichée.
o Propriété ImageTransparentColor : couleur transparente dans l’image.
o Propriété ImageScaling : mode de redimensionnement de l’image.
Valeurs possibles :
None la taille de l'image ne s'ajuste pas automatiquement à son conteneur.
SizeToFit la taille de l'image s'ajuste automatiquement à son conteneur.

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur


l’item. Pour voir la bulle d’aide, il faut aussi affecter la valeur true à la
propriété ShowItemToolTips du menustrip.

o Propriété DropDownItems : collection d'éléments du menuitem ; grâce à


l’éditeur de collection, on peut ajouter : MenuItem, ComboBox,
Separator, TextBox et configurer les propriétés de ces composants.

4.2.2- Le fonctionnement d’un menustrip

Comment réagir aux choix dans le menustrip ?


 Propriétés :

− Items : collection des éléments (ToolStripItem) qui appartiennent à un menustrip :


ToolStripMenuItem, ToolStripComboBox ou ToolStripTextBox.

⋅ Item ToolStripMenuItem : élément de menu contenue dans un menustrip.


Cette classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripmenuitem_members(VS.80).aspx) :

o Propriété CheckState : indique si l’élément de menu est à l'état coché ou


décoché par défaut.
o Propriété Checked : indique si l’élément de menu est coché ou décoché.
o Propriété CheckOnClick : indique si l’élément de menu doit apparaître
activé ou désactivé lorsqu'un clic est effectué dessus (élément à 2 états).

o Propriété ShortcutKeys : touches de raccourci clavier associées à


l’élément de menu.
o Propriété ShortcutKeyDisplayString : texte de la touche de raccourci.
o Propriété ShowShortcutKeys : indique si les touches de raccourci
clavier associées à l’élément de menu sont affichées à côté de l’élément
de menu.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 49


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 50/103

o Evènement Click : se produit suite à un clic sur un élément de menu.


Avec le gestionnaire d’évènement associé, il est possible de programmer
individuellement les réactions au clic sur chaque élément de menu. Pour
ouvrir le gestionnaire d’évènement, double cliquer sur l’élément de
menu. Pour faire un seul gestionnaire d’évènement pour plusieurs
éléments de menu, voir l’exemple plus loin.

 Evènements :
− ItemClicked : clic sur un item du menustrip (MenuItem, ComboBox, Separator ou
TextBox). Le gestionnaire d’évènement associé permet de traiter l’ensemble des clics
sur tous les menuitem. La classe ToolStripItemClickedEventArgs et la propriété
ClickedItem permettent d’identifier sur quel menuitem on a cliqué (intitulé menu du
haut).

Exemple : FONCTIONNEMENT D’UN MENUSTRIP

REACTION A UN CLIC SUR UN INTITULE DE MENU EN HAUT :

// -------------------------------------------------------------
// gestionnaire d'évènement unique de tous les item du menustrip
// traite les menus de haut niveau
// -------------------------------------------------------------
private: System::Void mnDessin_ItemClicked(System::Object^ sender,
System::Windows::Forms::ToolStripItemClickedEventArgs^ e) {

// identification de l'item (ici


menu général) sur lequel
l'utilisateur a cliqué

if (e->ClickedItem->Text ==
"&Fichier")
MessageBox::Show("Fichier");

else if (e->ClickedItem->Text ==
"&Couleurs")
MessageBox::Show("Couleurs");

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 50


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 51/103

REACTIONS INDIVIDUALISEES AUX CLICS SUR UN DES ELEMENT DE MENU :


// --------------------------------
// gestionnaire d'évènement
individualisés des éléments de menu
// --------------------------------
private: System::Void
bleuToolStripMenuItem_Click(System::Obje
ct^ sender, System::EventArgs^ e)
{ MessageBox::Show("Bleu"); }

private: System::Void
rougeToolStripMenuItem_Click(System::Obj
ect^ sender, System::EventArgs^ e)
{ MessageBox::Show("Rouge"); }

REACTION COMMUNE AUX CLICS SUR UN DES ELEMENT DE MENU :


// -------------------------------------------------------------
// gestionnaire d'évènement commun à plusieurs éléments de menu
/* Ce gestionnaire d'évènement doit-être lié aux évènements click de tous les
éléments de menu concernés : les ajouter dans la fenêtre de propriété, bouton
évènement, combobox en face du Click */
// POUR DONNER UN NOM GENERIQUE AU GESTIONNAIRE D'EVENEMENT :
/* 1) changer le nom de la fonction ici :
ouvrirToolStripMenuItem_Click -> FichierToolStripMenuItem_Click
2) lier le nouveau gestionnaire aux évènements click des éléments
de menu dans la fenêtre de propriétés, bouton évènement
3) SI ERREUR, plus haut dans le fichier (dans la partie description
de Form1),changer le nom du gestionnaire d'évènement sous // Form1
this->Click+=gcnew
System::EventHandler(this,&Form1::FichierToolStripMenuItem_Click); */
// -------------------------------------------------------------
private: System::Void FichierToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{

// transformation du sender en
élément de menu
ToolStripMenuItem ^ elementMenu=
safe_cast <ToolStripMenuItem ^>
(sender);

// traitement de chaque élément de


menu, différenciation par le sender
if ( elementMenu->Text == "Ouvrir" )
MessageBox::Show("Ouvrir");

else if(elementMenu->Text=="Quitter")
MessageBox::Show("Quitter");

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 51


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 52/103

4.3- Le composant CONTEXTMENUSTRIP

 MEMBRES DE LA CLASSE CONTEXTMENUSTRIP (espace de noms


System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.contextmenustrip_members(VS.80).aspx

La classe ContextMenuStrip représente des menus


contextuels qui sont affichés lorsque l'utilisateur clique
avec le bouton droit de la souris sur un contrôle ou une
zone du formulaire.

De nombreux composants visibles, tels que le


formulaire, possèdent une propriété ContextMenuStrip,
à laquelle le ContextMenuStrip créé peut-être associé,
afin que le composant affiche le menu contextuel. Un
ContextMenuStrip peut être utilisé par plusieurs
composants.

Ne renommer que le composant ContextMenuStrip


principal, avant d’ajouter les éléments de menu
contextuel.

4.3.1- La configuration d’un contextmenustrip

Comment remplir un contextmenustrip ?


 Propriétés :

− BackColor : couleur d'arrière-plan du menu contextuel.


− BackgroundImage : image d'arrière-plan affichée dans le menu contextuel.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.

− LayoutStyle : indique comment les éléments sont disposés sur le contextmenustrip.


Valeurs possibles :
Flow flux horizontal ou vertical des éléments.
HorizontalStackWithOverflow disposition horizontale avec dépassement éventuel.
StackWithOverflow disposition automatique des éléments.
Table alignement à gauche des éléments.
VerticalStackWithOverflow disposition verticale des éléments avec un centrage
dans le menustrip et dépassement éventuel.

− Padding : espacem interne, en pixels, entre le contenu du contextmenustrip et ses bords.


− RenderMode : style de peinture du menu contextuel.
Valeurs possibles : ManagerRenderMode, Professional, System.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 52


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 53/103

− DropShadowEnabled : indique si un effet d'ombre tridimensionnelle apparaît lorsque


le menu contextuel s'affiche.
− Font : police du texte affiché dans le menu contextuel.

− ShowCheckMargin : indique si l'espace pour une coche est affiché sur le côté gauche
du menu contextuel.
− ShowImageMargin : indiquant si l'espace pour une image est affiché sur le côté gauche
du menu contextuel.
− ShowItemToolTips : indique si les info-bulles sont affichées pour le contextmenustrip.

− Items : collection des éléments (ToolStripItem) qui appartiennent à un


contextmenustrip : ToolStripMenuItem, ToolStripComboBox ou ToolStripTextBox,
ToolStripSeparator.

⋅ Item ToolStripComboBox : zone de texte avec liste déroulante contenue


dans un contextmenustrip. Cette classe possède différents
membres ((http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripcombobox_members(VS.80).aspx) :
VOIR le paragraphe sur le composant ToolStrip.

⋅ Item ToolStripTextBox : zone de texte contenue dans un contextmenustrip.


Cette classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstriptextbox_members(VS.80).aspx) :
VOIR le paragraphe sur le composant ToolStrip.

⋅ Item ToolStripMenuItem : élément de menu contenue dans un


contextmenustrip. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripmenuitem_members(VS.80).aspx) :
VOIR le paragraphe sur le composant MenuStrip.

⋅ Item ToolStripSeparator : espace pour grouper visuellement les éléments


contenus dans un contextmenustrip. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripseparator_members(VS.80).aspx) :
VOIR le paragraphe sur le composant MenuStrip.

4.3.2- Le fonctionnement d’un contextmenustrip

Comment réagir aux choix dans le contextmenustrip ?


 Propriétés :

− AutoClose : indique si le menu contextuel doit se fermer automatiquement lorsqu'il n'est


plus actif.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 53


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 54/103

− Items : collection des éléments (ToolStripItem) qui appartiennent à un


contextmenustrip : ToolStripMenuItem, ToolStripComboBox ou ToolStripTextBox,
ToolStripSeparator.

⋅ Item ToolStripMenuItem : élément de menu contenue dans un


contextmenustrip. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripmenuitem_members(VS.80).aspx) :
VOIR le paragraphe sur le composant MenuStrip.

 Evènements :
− ItemClicked : clic sur un élément de menu du contextmenustrip. Le gestionnaire
d’évènement associé permet de traiter l’ensemble des clics sur tous les éléments du
menu contextuel. La classe ToolStripItemClickedEventArgs et la propriété
ClickedItem permettent d’identifier sur quel élément de menu on a cliqué.

Exemple : FONCTIONNEMENT D’UN CONTEXTMENUSTRIP

REACTION COMMUNE A UN CLIC SUR UN INTITULE DE MENU :

// ---------------------------------------------------------------------------
// gestionnaire d'évènement unique pour tous les éléments du ContextMenuStrip
// ---------------------------------------------------------------------------
private: System::Void cmnDessin_ItemClicked(System::Object^ sender,
System::Windows::Forms::ToolStripItemClickedEventArgs^ e) {

// identification de l'élément de menu


sur lequel l'utilisateur a cliqué

if (e->ClickedItem->Text == "Ouvrir")
MessageBox::Show("Ouvrir");
else if (e->ClickedItem->Text=="Blanc")
MessageBox::Show("Blanc");
else if (e->ClickedItem->Text=="Rouge")
MessageBox::Show("Rouge");
else if(e->ClickedItem->Text=="Quitter")
MessageBox::Show("Quitter");
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 54


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 55/103

4.4- Le composant TOOLSTRIP

 MEMBRES DE LA CLASSE TOOLSTRIP (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.toolstrip_members(VS.80).aspx

La classe ToolStrip permet de créer une barre d'outils entièrement


personnalisable, avec des boutons (ToolStripButton), du texte
(ToolStripLabel), des zones de saisies (TextBox), des listes de
choix (ComboBox), des barres de progression (ProgressBar), des
séparateurs (Separator), des boutons déroulant (DropDownButton),
des boutons déroulants cliquables (SplitButton).

4.4.1- La configuration d’un toolstrip

Comment paramétrer un toolstrip ?

 Propriétés :

− AutoSize : indiquant si le toolstrip est automatiquement redimensionné pour afficher


l'ensemble de son contenu.
− BackColor : couleur d'arrière-plan du statusstrip.
− RenderMode : style de peinture de la barre de statut.
Valeurs possibles : ManagerRenderMode, Professional, System.
− BackgroundImage : image d'arrière-plan affichée dans le statusstrip.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.
− LayoutStyle : indique comment les éléments sont disposés sur le statusstrip.
Valeurs possibles :
Flow flux horizontal ou vertical des éléments.
HorizontalStackWithOverflow disposition horizontale avec dépassement éventuel.
StackWithOverflow disposition automatique des éléments.
Table alignement à gauche des éléments.
VerticalStackWithOverflow disposition verticale des éléments avec un centrage
dans le statusstrip et dépassement éventuel.

− Stretch : indique si le statusstrip s'étend d'un bout à l'autre dans le conteneur.


− Padding : espacement interne, en pixels, entre le contenu du toolstrip et ses bords.
− Dock : ancre la statusstrip respectivement en bas, à gauche, à droite ou en haut du
formulaire. Valeurs possibles :

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 55


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 56/103

Bottom bord inférieur du contrôle ancré à la partie inférieure du formulaire.


Fill bords du contrôle ancrés aux bords du formulaire.
Left bord gauche ancré au bord gauche du formulaire.
None Le statusstrip n'est pas ancré.
Right bord droit du contrôle ancré au bord droit du formulaire.
Top bord supérieur du contrôle ancré à la partie supérieure du formulaire.

− Font : police du texte affiché par le statusstrip.


− TextDirection : orientation du texte.
Valeurs possibles :
Horizontal orientation horizontale du texte.
Vertical270 le texte doit pivoter de 270 degrés.
Vertical90 le texte doit pivoter de 90 degrés
− ShowItemToolTips : indique si les info-bulles sont affichées pour le statusstrip.
− ContextMenuStrip : ContextMenuStrip associé au statusstrip.

− Items : collection des éléments qui appartiennent à un toolstrip.

4.4.2- Les différents éléments d’un toolstrip

Item ToolStripProgressBar : barre de progression Windows contenue dans un toolstrip. Cette


classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripprogressbar_members(VS.80).aspx) :

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur l’item. Pour
voir la bulle d’aide, il faut aussi affecter la valeur true à la propriété ShowItemToolTips
du toolstrip.
o Propriété Margin : espace entre l’item et les autres items adjacents.
o Propriété Padding : espacement interne, en pixels, entre le contenu de l'élément et ses
bords.
o Propriété Step : incrémentation de la valeur actuelle de la barre de progression lorsque la
méthode PerformStep() est appelée.
o Propriété Style : style de la barre de progression.
Valeurs possibles :
Blocks progression dans la progressbar par segments.
Continuous progression en augmentant la taille d'une barre lissée continue.
Marquee progression en faisant défiler en continu un bloc le long de la
progressbar à la manière d'un texte défilant.

o Propriété Value : position actuelle dans la barre de progression.


o Propriété MarqueeAnimationSpeed : valeur représentant le délai entre chaque mise à
jour de l'affichage, en millisecondes.
o Propriété Maximum : limite supérieure de la plage du progressbar.
o Propriété Minimum : limite inférieure de la plage du progressbar.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 56


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 57/103

o Méthode Increment(int32) : fait avancer la position actuelle de la barre de progression


de la quantité spécifiée. La propriété Value sature à Maximum ou Minimum.
o Méthode PerformStep() : fait avancer la position actuelle de la barre de progression de la
quantité de la propriété Step. La propriété Value sature à Maximum ou Minimum.

Item ToolStripLabel : Label ou LinkLabel contenu dans un toolstrip. Cette classe possède
différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstriplabel_members(VS.80).aspx) :

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur l’item. Pour
voir la bulle d’aide, il faut aussi affecter la valeur true à la propriété ShowItemToolTips
du toolstrip.
o Propriété Margin : espace entre l’item et les autres items adjacents.
o Propriété Padding : espacement entre les bords du label et son contenu.

o Propriété BackColor : couleur d'arrière-plan du label.


o Propriété BackgroundImage : image d'arrière-plan du label.
o Propriété BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.

o Propriété DisplayStyle : définit si le texte et/ou les images sont affichés.


Valeurs possibles :
Image seule une image doit être affichée.
ImageAndText à la fois une image et le texte sont affichés.
None ni une image ni le texte ne sont affichés.
Text seul le texte est affiché.

o Propriété Image : image affichée dans le label.


o Propriété ImageAlign : façon dont l’image est affichée.
o Propriété ImageTransparentColor : couleur transparente dans l’image.
o Propriété ImageScaling : mode de redimensionnement de l’image.
Valeurs possibles :
None la taille de l'image ne s'ajuste pas automatiquement à son conteneur.
SizeToFit la taille de l'image s'ajuste automatiquement à son conteneur.

o Propriété Font : police du texte affiché par le label.


o Propriété ForeColor : couleur du texte dans le label.
o Propriété Text : texte dans le label.
o Propriété TextAlign : alignement du texte dans le label.
o Propriété TextDirection : orientation du texte.
o Propriété TextImageRelation : positions relatives du texte et de l'image.
o Propriété IsLink : indique si le label est un lien hypertexte.
o Propriété ActiveLinkColor : couleur utilisée pour afficher un lien actif.
o Propriété LinkColor : couleur utilisée pour afficher un lien normal.
o Propriété VisitedLinkColor : couleur pour un lien précédemment visité.
o Propriété LinkVisited : indique si un lien a été visité.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 57


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 58/103

o Propriété LinkBehavior : valeur qui représente le comportement d'un lien. Valeurs


possibles :
AlwaysUnderline Le lien s'affiche toujours avec le texte souligné.
HoverUnderline Le texte est souligné lorsque la souris pointe sur le texte du lien.
NeverUnderline Le texte du lien n'est jamais souligné.
SystemDefault voir paramètres de la boîte de dialogue Options Internet d'IE.

Item ToolStripDropDownButton : bouton déroulable contenu dans un toolstrip. Cette classe


possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripdropdownbutton_members(VS.80).aspx) :

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur l’item. Pour
voir la bulle d’aide, il faut aussi affecter la valeur true à la propriété ShowItemToolTips
du toolstrip.

o Propriété Margin : espace entre l’item et les autres items adjacents.


o Propriété Padding : espace entre les bords du bouton et son contenu.
o Propriété BackColor : couleur d'arrière-plan du bouton.
o Propriété BackgroundImage : image d'arrière-plan du bouton.
o Propriété BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.
o Propriété DisplayStyle : définit si le texte et/ou les images sont affichés (voir item
précédent).
o Propriété Image : image affichée dans le bouton.
o Propriété ImageAlign : façon dont l’image est affichée.
o Propriété ImageTransparentColor : couleur transparente dans l’image.
o Propriété ImageScaling : mode de redimensionnement de l’image (voir l’item
précédent).
o Propriété Font : police du texte affiché par le bouton.
o Propriété ForeColor : couleur du texte dans le bouton.
o Propriété Text : texte dans le bouton.
o Propriété TextAlign : alignement du texte dans le bouton.
o Propriété TextDirection : orientation du texte.
o Propriété TextImageRelation : positions relatives du texte et de l'image.
o Propriété ShowDropDownArrow : indique ou non que des options supplémentaires sont
disponibles dans la liste déroulante.
o Propriété DropDownItems : collection d'éléments ; grâce à l’éditeur de collection, on
peut ajouter : MenuItem, ComboBox, Separator, TextBox et configurer les propriétés de
ces composants.

o Evènement Click : se produit suite à un clic sur le dropdownbouton.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 58


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 59/103

Item ToolStripSplitButton : combinaison d’un bouton standard et d’un bouton déroulable


contenue dans un toolstrip. La différence majeure avec le DropDownButton précédent : il existe,
ici, un évènement clic sur le bouton indépendant du clic sur la liste déroulante. Cette classe possède
différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripsplitbutton_members(VS.80).aspx) :

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur l’item. Pour
voir la bulle d’aide, il faut aussi affecter la valeur true à la propriété ShowItemToolTips
du toolstrip.
o Propriété Margin : espace entre l’item et les autres items adjacents.
o Propriété Padding : espace entre les bords du bouton et son contenu.
o Propriété BackgroundImage : image d'arrière-plan du bouton.
o Propriété BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.

o Propriété DisplayStyle : définit si le texte et/ou les images sont affichés (voir item
précédent).
o Propriété Image : image affichée dans le bouton.
o Propriété ImageAlign : façon dont l’image est affichée.
o Propriété ImageTransparentColor : couleur transparente dans l’image.
o Propriété ImageScaling : mode de redimensionnement de l’image (voir l’item
précédent).
o Propriété Font : police du texte affiché par le bouton.
o Propriété ForeColor : couleur du texte dans le bouton.
o Propriété Text : texte dans le bouton.
o Propriété TextAlign : alignement du texte dans le bouton.
o Propriété TextDirection : orientation du texte.
o Propriété TextImageRelation : positions relatives du texte et de l'image.

o Propriété DropDownButtonWidth : largeur, en pixels, de la partie bouton déroulant.


o Propriété DropDownItems : collection d'éléments ; grâce à l’éditeur de collection, on
peut ajouter : MenuItem, ComboBox, Separator, TextBox et configurer les propriétés de
ces composants.

o Evènement Click : se produit suite à un clic sur le bouton.


o Evènement ButtonClick : se produit suite à un clic sur la partie bouton standard du
splitbutton.

Item ToolStripButton : bouton standard contenu dans un toolstrip. Cette classe possède
différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripbutton_members(VS.80).aspx) :

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur l’item. Pour
voir la bulle d’aide, il faut aussi affecter la valeur true à la propriété ShowItemToolTips
du toolstrip.
o Propriété Margin : espace entre l’item et les autres items adjacents.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 59


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 60/103

o Propriété Padding : espace entre les bords du bouton et son contenu.


o Propriété BackgroundImage : image d'arrière-plan du bouton.
o Propriété BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.

o Propriété DisplayStyle : définit si le texte et/ou les images sont affichés (voir item
précédent).
o Propriété Image : image affichée dans le bouton.
o Propriété ImageAlign : façon dont l’image est affichée.
o Propriété ImageTransparentColor : couleur transparente dans l’image.
o Propriété ImageScaling : mode de redimensionnement de l’image (voir l’item
précédent).
o Propriété Font : police du texte affiché par le bouton.
o Propriété ForeColor : couleur du texte dans le bouton.
o Propriété Text : texte dans le bouton.
o Propriété TextAlign : alignement du texte dans le bouton.
o Propriété TextDirection : orientation du texte.
o Propriété TextImageRelation : positions relatives du texte et de l'image.

o Propriété CheckState : indique si le bouton est à l'état activé ou désactivé par défaut.
o Propriété Checked : indique si le bouton est activé ou désactivé.
o Propriété CheckOnClick : indique si le bouton doit apparaître activé ou désactivé
lorsqu'un clic est effectué dessus (bouton à 2 états).
o Evènement Click : se produit suite à un clic sur le bouton.

Item ToolStripComboBox : zone de texte avec liste déroulante contenue dans un toolstrip. Cette
classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripcombobox_members(VS.80).aspx) :

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur l’item. Pour
voir la bulle d’aide, il faut aussi affecter la valeur true à la propriété ShowItemToolTips
du toolstrip.
o Propriété BackColor : couleur d'arrière-plan de la combobox.
o Propriété Margin : espace entre l’item et les autres items adjacents.
o Propriété Padding : espace entre les bords de l’item et son contenu.
o Propriété FlatStyle : apparence de la combobox. Valeurs possibles :
Flat la combobox s'affiche sous une forme à deux dimensions.
Popup la combobox s'affiche sous une forme à deux dimensions et, si la souris
arrive à sa hauteur, il prend alors une forme à trois dimensions.
Standard la combobox s'affiche sous une forme à trois dimensions.
System L'apparence de la combobox est déterminée par l’OS.

o Propriété DropDownStyle : style de la combobox.


Valeurs possibles :

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 60


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 61/103

DropDown La partie texte est modifiable. L'utilisateur doit cliquer sur le bouton
fléché pour afficher la partie liste.
DropDownList L'utilisateur ne peut pas modifier la partie texte. L'utilisateur doit
cliquer sur le bouton fléché pour afficher la partie liste, qui ne
s'affiche que si AutoCompleteMode est Suggest ou SuggestAppend.
Simple La partie texte est modifiable. La partie liste est toujours visible.

o Propriété Text : texte dans la zone d’édition de la combobox.


o Propriété ForeColor : couleur du texte dans la combobox.
o Propriété Font : police du texte affiché par la combobox.

o Propriété Items : collection des éléments texte de la liste déroulante.


o Propriété MaxDropDownItems : nombre maximal d'éléments à afficher dans la partie de
liste déroulante de la combobox.
o Propriété MaxLength : nombre maximal de caractères autorisés dans la partie modifiable
d'une zone de liste déroulante.
o Propriété IntegralHeight : indique si la combobox doit être redimensionnée pour éviter
d'afficher des éléments partiellement.
o Propriété Sorted : indique si les éléments dans la combobox sont triés.
o Propriété AutoCompleteMode : type de saisie de texte dans la combobox. Valeurs
possibles :
Append Ajoute le reste de la chaîne des candidats les plus probables aux
caractères existants, avec les caractères ajoutés en surbrillance.
None Désactive la fonctionnalité de saisie semi-automatique.
Suggest Affiche la liste déroulante auxiliaire (chaînes de saisie semi-
automatique suggérées) associée au contrôle d'édition.
SuggestAppend Applique à la fois les options Suggest et Append.

o Propriété AutoCompleteSource : source de chaînes complètes utilisées pour la saisie


semi-automatique. Quelques valeurs possibles :
AllSystemSources Spécifie l'équivalent de FileSystem et AllUrl comme source.
AllUrl Source= HistoryList et RecentlyUsedList.
CustomSource Sources = chaînes d'un AutoCompleteStringCollection intégré.
FileSystem Spécifie le système de fichiers comme source.
FileSystemDirectories seuls les noms de répertoire et pas les noms de fichier seront
complétés automatiquement.
ListItems Source= éléments d’une combobox.
None aucun AutoCompleteSource n'est en cours d'utilisation.

o Propriété AutoCompleteCustomSource : collection de chaînes personnalisées à utiliser


lorsque la propriété AutoCompleteSource a la valeur CustomSource.
o Evènement TextUpdate : lorsque le texte de la combobox a été modifié.
o Evènement TextChanged : lorsque la valeur de la propriété Text change.
o Evènement Click : se produit suite à un clic sur la liste déroulante.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 61


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 62/103

Item ToolStripTextBox : zone de texte contenue dans un toolstrip. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstriptextbox_members(VS.80).aspx) :

o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur l’item. Pour
voir la bulle d’aide, il faut aussi affecter la valeur true à la propriété ShowItemToolTips
du toolstrip.
o Propriété BackColor : couleur d'arrière-plan de la textbox.
o Propriété Margin : espace entre l’item et les autres items adjacents.
o Propriété Padding : espace entre les bords de l’item et son contenu.
o Propriété BorderStyle : type de bordure de la textbox.

o Propriété Text : texte de la textbox.


o Propriété Lines : lignes de texte contenues dans une textbox.
o Propriété ForeColor : couleur du texte dans la textbox.
o Propriété Font : police du texte affiché par la textbox.
o Propriété TextBoxTextAlign : façon dont le texte est aligné.
o Propriété MaxLength : nombre maximal de caractères que l'utilisateur peut taper ou
coller dans le contrôle TextBox.
o Propriété HideSelection : indique si le texte sélectionné dans la textbox reste en
surbrillance quand le focus passe à un autre contrôle.

o Propriété ReadOnly : indique si le texte est en lecture seule.


o Propriété AcceptsReturn : indique si le fait d'appuyer sur ENTRÉE dans un contrôle
TextBox multiligne entraîne la création d'une nouvelle ligne.
o Propriété AcceptsTab : indique si le fait d'appuyer sur TAB dans un contrôle zone de
texte multiligne effectue une tabulation.
o Propriété CharacterCasing : définit si la textbox modifie la casse des caractères au fur et
à mesure de la saisie.

o Propriété AutoCompleteMode : type de saisie de texte dans la textbox. Valeurs


possibles : VOIR ELEMENT PRECEDENT.
o Propriété AutoCompleteSource : source de chaînes complètes utilisées pour la saisie
semi-automatique. Valeurs possibles : VOIR ELEMENT PRECEDENT.
o Propriété AutoCompleteCustomSource : collection de chaînes personnalisées à utiliser
lorsque la propriété AutoCompleteSource a la valeur CustomSource.

o Evènement TextChanged : lorsque la valeur de la propriété Text change.

Item ToolStripSeparator : espace pour grouper visuellement les éléments contenus dans un
toolstrip. Cette classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripseparator_members(VS.80).aspx) :

o Propriété Margin : espace entre l’item et les autres items adjacents.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 62


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 63/103

5- Les composants d’affichage d’informations d’état, d’aide

5.1- Le composant TOOLTIP


 MEMBRES DE LA CLASSE TOOLTIP (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.tooltip_members(VS.80).aspx

La classe ToolTip permet d’afficher des bulles d'aides sur un


composant, lorsque l'on laisse le curseur de la souris immobile
dessus pendant 1 à 2 secondes.

En déposant un contrôle ToolTip sur le formulaire, il s'ajoute


automatiquement une propriété supplémentaire aux autres
composants : ToolTip on toolTip1 (toolTip1 étant le nom par
défaut du composant ToolTip déposé).

Il ne reste plus qu’à renseigner cette propriété rajoutée avec le


texte que l'on souhaite voir s’afficher dans la bulle d’aide.

5.1.1- L’utilisation d’un tooltip


Comment créer un tooltip ?
 Propriétés :
− ToolTipTitle : titre de la fenêtre d'info-bulle.
− ToolTipIcon : type d'icône à afficher le long du texte d'info-bulle.
Valeurs possibles :
Error Icône d'erreur
Info Icône d'information.
None Icône non standard.
Warning Icône d'avertissement.
− ForeColor : couleur du texte dans l’info-bulle.
− BackColor : couleur d'arrière-plan de l’info-bulle.
− IsBalloon : indique si l'info-bulle doit utiliser une fenêtre de bulle.
− UseAnimation : effet d'animation lors de l'affichage de l'info-bulle.
− UseFading : effet d'atténuation lors de l'affichage de l'info-bulle.
− AutomaticDelay : délai initial pour l'info-bulle. Cette propriété permet de définir un
seul délai de temporisation qui sera utilisé pour définir les valeurs des propriétés
AutoPopDelay (10 fois la valeur), InitialDelay (égal) et ReshowDelay (1/5 de la valeur).
− AutoPopDelay : durée d'affichage de l'info-bulle quand la souris s'immobilise.
− InitialDelay : temps écoulé avant l'apparition de l'info-bulle.
− ReshowDelay : délai qui doit s'écouler avant que s'affichent des fenêtres d'info-bulle qui
se suivent lorsque le pointeur de la souris passe d'un contrôle à un autre.
− ShowAlways : apparition de l'info-bulle même si son contrôle parent n'est pas actif.
− Active : valeur indiquant si l'info-bulle est actuellement active.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 63


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 64/103

5.2- Le composant PROGRESSBAR


 MEMBRES DE LA CLASSE PROGRESSBAR (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.progressbar_members(VS.80).aspx

La classe ProgressBar corrrespond à une barre de progression, qui


permet d’indiquer que l’opération en cours va prendre un certain temps.

5.2.1- La configuration et l’utilisation d’une progressbar


Comment créer et utiliser une progressbar ?
 Propriétés :
− Style : style de la barre de progression.
Valeurs possibles :
Blocks progression dans la progressbar par segments.
Continuous progression en augmentant la taille d'une barre lissée continue.
Marquee progression en faisant défiler en continu un bloc le long de la
progressbar à la manière d'un texte défilant.
− Value : position actuelle dans la barre de progression.
− MarqueeAnimationSpeed : valeur représentant le délai entre chaque mise à jour de
l'affichage, en millisecondes.
− Maximum : limite supérieure de la plage du progressbar.
− Minimum : limite inférieure de la plage du progressbar.
− Step : incrémentation de la valeur actuelle de la barre de progression lorsque la méthode
PerformStep() est appelée.
 Méthodes :
− Increment(int32) : fait avancer la position actuelle de la barre de progression de la
quantité spécifiée. La propriété Value sature à Maximum ou Minimum.
− PerformStep() : fait avancer la position actuelle de la barre de progression de la
quantité de la propriété Step. La propriété Value sature à Maximum ou Minimum.

Exemple : EVOLUTION D’UNE PROGRESSBAR GRACE A UN TIMER

// ------------------------------------------------------------------------
// Evolution dans un timer, toutes les secondes, de la barre de progression
// ------------------------------------------------------------------------
private: System::Void timAttente_Tick(System::Object^ sender,
System::EventArgs^ e)
{ /* progression de la barre selon le pas fixé avec la propriété Step. La
méthode utilisée sature automatiquement au Maximum ou au Minimum (en fonction
du signe du pas) */
pgbAttente->PerformStep();
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 64


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 65/103

5.3- Le composant STATUSSTRIP

 MEMBRES DE LA CLASSE STATUSSTRIP (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.statusstrip_members(VS.80).aspx

La classe StatusStrip représente la barre d'état que l'on peut voir dans certaines
applications. Elle est généralement ancrée dans la partie basse d'une fenêtre.
De la même façon que pour le contrôle ToolStrip, il est possible de rajouter des contrôles
dans la barre. La différence ici est que l'on peut ajouter uniquement des labels, des
progressbar, des dropdownbuttons ou des splitbuttons.

5.3.1- La configuration d’un statusstrip

Comment créer un statusstrip ?


 Propriétés :
− BackColor : couleur d'arrière-plan du statusstrip.
− RenderMode : style de peinture de la barre de statut.
Valeurs possibles : ManagerRenderMode, Professional, System.
− BackgroundImage : image d'arrière-plan affichée dans le statusstrip.
− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.
− LayoutStyle : indique comment les éléments sont disposés sur le statusstrip.
Valeurs possibles :
Flow flux horizontal ou vertical des éléments.
HorizontalStackWithOverflow disposition horizontale avec dépassement éventuel.
StackWithOverflow disposition automatique des éléments.
Table alignement à gauche des éléments.
VerticalStackWithOverflow disposition verticale des éléments avec un centrage
dans le statusstrip et dépassement éventuel.

− Stretch : indique si le statusstrip s'étend d'un bout à l'autre dans le conteneur.


− Dock : ancre la statusstrip respectivement en bas, à gauche, à droite ou en haut du
formulaire. Valeurs possibles :
Bottom bord inférieur du contrôle ancré à la partie inférieure du formulaire.
Fill bords du contrôle ancrés aux bords du formulaire.
Left bord gauche ancré au bord gauche du formulaire.
None Le statusstrip n'est pas ancré.
Right bord droit du contrôle ancré au bord droit du formulaire.
Top bord supérieur du contrôle ancré à la partie supérieure du formulaire.

− SizingGrip : indique si une poignée de dimensionnement est affichée dans le coin


inférieur droit du statusstrip.
− Font : police du texte affiché par le statusstrip.
− TextDirection : orientation du texte.
Valeurs possibles :
Horizontal orientation horizontale du texte.
Vertical270 le texte doit pivoter de 270 degrés.
Vertical90 le texte doit pivoter de 90 degrés

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 65


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 66/103

− ShowItemToolTips : indique si les info-bulles sont affichées pour le statusstrip.


− ContextMenuStrip : ContextMenuStrip associé au statusstrip.

5.3.2- Les composants d’un statusstrip


− Items : collection des éléments qui appartiennent à un statusstrip.

⋅ Item ToolStripProgressBar : barre de progression Windows contenue dans


un statusstrip. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripprogressbar_members(VS.80).aspx) :
VOIR le paragraphe sur le composant ToolStrip.

⋅ Item ToolStripStatusLabel : Label ou LinkLabel contenu dans un


statusstrip. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripstatuslabel_members(VS.80).aspx) :
o Propriété ToolTipText : texte de l'info-bulle affiché si la souris passe sur
l’item. Pour voir la bulle d’aide, il faut aussi affecter la valeur true à la
propriété ShowItemToolTips du statusstrip.
o Propriété AutoToolTip : affichage ou non de la bulle d’aide.
o Propriété Margin : espace entre l’item et les autres items adjacents.
o Propriété Padding : espacement entre les bords du label et son contenu.
o Propriété Spring : indique si le label remplit automatiquement l'espace
disponible sur le statusstrip lorsque le formulaire est redimensionné.
o Propriété BorderStyle : type de bordure du label.
o Propriété BorderSides : indique les côtés du label qui ont des bordures.
o Propriété BackColor : couleur d'arrière-plan du label.
o Propriété BackgroundImage : image d'arrière-plan du label.
o Propriété BackgroundImageLayout : affichage de cette image.
o Propriété DisplayStyle : définit si le texte et/ou les images sont affichés.
Valeurs possibles :
Image seule une image doit être affichée.
ImageAndText à la fois une image et le texte sont affichés.
None ni une image ni le texte ne sont affichés.
Text seul le texte est affiché.

o Propriété Image : image affichée dans le label.


o Propriété ImageAlign : façon dont l’image est affichée.
o Propriété ImageTransparentColor : couleur transparente dans l’image.
o Propriété ImageScaling : mode de redimensionnement de l’image.
Valeurs possibles :
None la taille de l'image ne s'ajuste pas automatiquement à son conteneur.
SizeToFit la taille de l'image s'ajuste automatiquement à son conteneur.

o Propriété Font : police du texte affiché par le label.


o Propriété ForeColor : couleur du texte dans le label.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 66


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 67/103

o Propriété Text : texte dans le label.


o Propriété TextAlign : alignement du texte dans le label.
o Propriété TextDirection : orientation du texte.
o Propriété TextImageRelation : positions relatives du texte et de l'image.
Propriété IsLink : indique si le label est un lien hypertexte.
o
Propriété ActiveLinkColor : couleur utilisée pour afficher un lien actif.
o
Propriété LinkColor : couleur utilisée pour afficher un lien normal.
o
Propriété VisitedLinkColor : couleur pour un lien précédemment visité.
o
Propriété LinkVisited : indique si un lien a été visité.
o
Propriété LinkBehavior : valeur qui représente le comportement d'un
o
lien. Valeurs possibles :
AlwaysUnderline Le lien s'affiche toujours avec le texte souligné.
HoverUnderline Le texte est souligné lorsque la souris pointe sur le texte du lien.
NeverUnderline Le texte du lien n'est jamais souligné.
SystemDefault voir paramètres de la boîte de dialogue Options Internet d'IE.

⋅ Item ToolStripDropDownButton : bouton déroulable contenu dans un


statusstrip. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripdropdownbutton_members(VS.80).asp
x) : VOIR le paragraphe sur le composant ToolStrip.

⋅ Item ToolStripSplitButton : combinaison d’un bouton standard et d’un


bouton déroulable contenue dans un statusstrip. La différence majeure avec
le DropDownButton précédent : il existe, ici, un évènement clic sur le bouton
indépendant du clic sur la liste déroulante. Cette classe possède différents
membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.toolstripsplitbutton_members(VS.80).aspx) :
VOIR le paragraphe sur le composant ToolStrip.

Exemple : CONFIGURATION D’UNE STATUSSTRIP

AJOUT D’UNE PROGRESSBAR, D’UN LABEL ET D’UN DROPDOWNBUTTON :

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 67


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 68/103

5.4- Le composant NOTIFYICON

 MEMBRES DE LA CLASSE NOTIFYICON (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.notifyicon_members(VS.80).aspx

La classe NotifyIcon permet de programmer des processus, non dotés d'interfaces avec
lesquels on interagit depuis la barre système Windows.
Ce contrôle sert à avoir une icône dans la barre système (généralement utilisée pour
réduire l'application), de pouvoir agir dessus par un menu contextuel, ou d'obtenir une
information grâce à une bulle.

5.4.1- La configuration d’un notifyicon


Comment créer un notifyicon ?
 Propriétés :
− Icon : icône visible dans la barre système Windows.
− Text : texte de l’info-bulle qui s'affiche lorsque le pointeur de la souris se place sur
l'icône du composant notifyicon.

5.4.2- L’utilisation d’un notifyicon


Comment faire fonctionner un notifyicon ?
 Propriétés :
− ContextMenuStrip : menu contextuel associé au composant notifyicon. Il s'affichera
lors d'un click droit sur l'icône du notifyicon dans la barre système.
− BalloonTipIcon : icône à afficher sur l'info-bulle associée au composant notifyicon.
− BalloonTipText : texte à afficher sur l'info-bulle associée au composant notifyicon.
− BalloonTipTitle : titre de l'info-bulle affichée sur le composant notifyicon.
 Méthodes :
− ShowBalloonTip(Int32, String, String, ToolTipIcon) : affiche l’info-bulle dans la
barre système Windows, pendant la période spécifiée (en ms), avec le titre, le texte et
l'icône spécifiées. Exemple :
ntiInfoSystem→ShowBalloonTip(10000, "titre", "text", ToolTipIcon::Info);
Valeurs possibles de ToolTipIcon :
Error Icône d'erreur.
Info Icône d'information.
None Icône non standard.
Warning Icône d'avertissement.
 Evènements :
− BalloonTipClicked : se produit après un clic sur l'info-bulle.
− BalloonTipClosed : se produit lorsque l'info-bulle est fermée par l'utilisateur.
− BalloonTipShown : se produit lorsque l'info-bulle est affichée sur l'écran.

Exemple : MINIMISATION D’UNE APPLICATION DANS LA BARRE SYSTEME

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 68


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 69/103

Après avoir ajouté et configuré un composant NotifyIcon, ajouter le


menu contextuel lié à ce composant.

MINIMISATION DE L’APPLICATION ET ACTIONS DEPUIS LA BARRE SYSTEME :


private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^e)
{ // au démarrage, icône invisible dans la barre système Windows
ntiInfoSystem->Visible = false; }
private:System::Void btnMin_Click(System::Object^sender,System::EventArgs^e)
{ //minimise application dans barre système
this->Hide();
ntiInfoSystem->Visible = true;
ntiInfoSystem->Text="System Info";
// affichage info bulle dans la barre système
ntiInfoSystem->ShowBalloonTip(10000, "Informations
système", "affichage date ou version OS...",
ToolTipIcon::Info); }

private: System::Void
versionOSToolStripMenuItem_Click(Sy
stem::Object^sender,System::EventAr
gs^e)
{ // affiche version OS
MessageBox::Show("Version OS :
" + Environment::OSVersion->
ToString()); }
private: System::Void
dateToolStripMenuItem_Click(System:
:Object^ sender,
System::EventArgs^ e)
{ // affiche date et heure
MessageBox::Show("Date du jour
: " + System::DateTime::Now ); }
private: System::Void
fermerToolStripMenuItem_Click(Syste
m::Object^
sender,System::EventArgs^ e)
{ Close();//fermeture
application }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 69


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 70/103

6- Les composants boîtes de dialogue

6.1- Le composant FOLDERBROWSERDIALOG


 MEMBRES DE LA CLASSE FOLDERBROWSERDIALOG : http://msdn2.microsoft.com/fr-
fr/library/system.windows.forms.folderbrowserdialog_members(VS.80).aspx

La boite de dialogue FolderBrowserDialog permet de parcourir les répertoires.

6.1.1- La configuration et l’utilisation d’une folderbrowserdialog


Comment paramétrer et utiliser une folderbrowserdialog ?
 Propriétés :
− Description : texte descriptif affiché dans la boîte de dialogue.
− SelectedPath : chemin d'accès sélectionné par l'utilisateur.
− ShowNewFolderButton : bouton Nouveau dossier présennt ou non.
− RootFolder : dossier racine à partir duquel la recherche démarre. Exemple :
fbdTexte→RootFolder = Environment::SpecialFolder::MyDocuments;
Quelques valeurs possibles :
MyComputer Dossier "Poste de travail".
MyDocuments Dossier "Mes documents".
MyMusic Dossier "Ma musique".
MyPictures Dossier "Mes images".
 Méthodes :
− ShowDialog() : exécute la boîte de dialogue en mode Modal.
 Evènements :
− HelpRequest : l'utilisateur clique sur le bouton Aide dans la boîte de dialogue.

Exemple : SELECTION DE REPERTOIRES AVEC LA BOITE DE DIALOGUE

RECUPERATION DE L’ARBORESCENCE CHOISI DANS UN FOLDERBRWSERDIALOG :

private: System::Void
btnDir_Click(System::Object^sender,S
ystem::EventArgs^e)
{
// ouverture boîte de dialogue
répertoire, récupération du chemin
choisi
fbdDir->ShowDialog();
if (fbdDir->SelectedPath !=
String::Empty)

MessageBox::Show("Répertoire
sélectionné: "+fbdDir->
SelectedPath);

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 70


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 71/103

6.2- Le composant OPENFILEDIALOG


 MEMBRES DE LA CLASSE OPENFILEDIALOG (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.openfiledialog_members(VS.80).aspx

La boite de dialogue OpenFileDialog permet d'ouvrir la boite d’ouverture de fichiers pour


effectuer la lecture ou l'écriture d'un fichier.

6.2.1- La configuration et l’utilisation d’une openfiledialog (LECTURE MUSIQUE)


Comment paramétrer et utiliser une openfiledialog ?
 Propriétés :
− FileName : nom de fichier sélectionné dans la boîte de dialogue Fichier.
− Title : titre de la boîte de dialogue.
− ShowReadOnly : présence d’une case à cocher en lecture seule.
− ReadOnlyChecked : indique si la case à cocher en lecture seule est activée.
− DefaultExt : extension de nom de fichier par défaut. Exemple : "txt".
− Filter : chaîne de filtrage des noms de fichiers en cours fixant les choix possibles dans la
zone "Types de fichiers" de la boîte de dialogue. Exemples : "Text files (*.txt)|*.txt|All
files (*.*)|*.*" et "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF"
− FilterIndex : indice de l'option de filtrage sélectionnée dans la boîte de dialogue.
− Multiselect : indique si la boîte de dialogue permet de sélectionner plusieurs fichiers.
− InitialDirectory : répertoire initial affiché dans la boîte de dialogue Fichier. Ex. : "c:\\"
− RestoreDirectory : restauration ou non par la boîte de dialogue du répertoire actif à sa
valeur d'origine si l'utilisateur l'a modifié pendant la recherche des fichiers.
− ShowHelp : indique si le bouton Aide est affiché.
− AddExtension : ajout automatique d’une extension au nom de fichier si inexistante.
− CheckFileExists : affiche un message d'avertissement si nom de fichier inexistant.
− CheckPathExists : affiche un message d'avertissement si chemin d'accès inexistant.
− ValidateNames : vérification ou non des noms de fichiers Win32 valides.
 Méthodes :
− ShowDialog() : exécute la boîte de dialogue en mode Modal.
− Stream ^OpenFile() : ouvre le fichier sélectionné par l'utilisateur dans la boîte de
dialogue avec les autorisations de lecture/écriture. Exemple :
ofdTexte→FileName= nullptr; // pour ne pas avoir de nom prédéfini dans ofdTexte
if ( ofdTexte→ShowDialog()) == System::Windows::Forms::DialogResult::OK )
{ Stream ^file ; if ( (file = ofdTexte→OpenFile()) != nullptr )
{ /* lecture/écriture dans le fichier ici */ file→Close(); } }
Classe Stream (accès fichiers binaires, manipule des Stream) :
http://msdn.microsoft.com/fr-fr/library/system.io.stream_members(VS.80).aspx
Classe StreamWriter (écriture fichiers textes, manipule des StreamWriter) :
http://msdn.microsoft.com/fr-fr/library/system.io.streamwriter_members(VS.80).aspx
Classe StreamReader (lecture fichiers textes, manipule des StreamReader) :
http://msdn.microsoft.com/fr-fr/library/system.io.streamreader_members(VS.80).aspx
 Evènements :
− FileOk : se produit lorsque l'utilisateur clique sur le bouton Ouvrir.
− HelpRequest : l'utilisateur clique sur le bouton Aide dans la boîte de dialogue.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 71


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 72/103

Exemple : LECTURE FICHIER AUDIO AVEC UNE BOITE DE DIALOGUE

OUVERTURE FICHIER WAV ET LANCEMENT DE LA MUSIQUE :

// -----------------------------
// OUVERTURE FLUX AUDIO WAV (PCM)
// -----------------------------
private: System::Void
btnOpen_Click(System::Object^sende
r,System::EventArgs^e)
{

// ouverture boîte de
dialogue "choisir un fichier"
// --------------------
if(ofdMusic->ShowDialog() ==
System::Windows::Forms::DialogResu
lt::OK)
{ //récupération nom du
fichier sélectionné
System::String ^
nameFile= ofdMusic->FileName;

MessageBox::Show("Fichier
sélectionné : " + nameFile);

//
lecture
musique POUR
UN FICHIER au
format WAV-
PCM
// ------------------

// Crée un object de
type SoundPlayer

System::Media::SoundPla
yer^ Player = gcnew
System::Media::SoundPlayer();

// Indique le chemin
d'acces au fichier a lire
Player->SoundLocation =
nameFile;

// Lance la lecture de
la musique
Player->Play();

}
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 72


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 73/103

6.3- Le composant SAVEFILEDIALOG

 MEMBRES DE LA CLASSE SAVEFILEDIALOG (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.savefiledialog_members(VS.80).aspx

La boite de dialogue SaveFileDialog permet d'ouvrir la boite de sauvegarde de fichiers.

6.3.1- La configuration et l’utilisation d’une savefiledialog


Comment paramétrer et utiliser une savefiledialog ?
 Propriétés :
− FileName : nom de fichier sélectionné dans la boîte de dialogue Fichier.
− Title : titre de la boîte de dialogue.
− DefaultExt : extension de nom de fichier par défaut. Exemple : "txt".
− Filter : chaîne de filtrage des noms de fichiers en cours, qui détermine les choix
disponibles dans les zones "Enregistrer sous" ou "Types de fichiers" de la boîte de
dialogue. Exemples : "Text files (*.txt)|*.txt|All files (*.*)|*.*"
"Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"
− FilterIndex : indice de l'option de filtrage sélectionnée dans la boîte de dialogue.
− InitialDirectory : répertoire initial affiché dans la boîte de dialogue Fichier. Ex. : "c:\\"
− RestoreDirectory : restauration ou non par la boîte de dialogue du répertoire actif à sa
valeur d'origine si l'utilisateur l'a modifié pendant la recherche des fichiers.
− ShowHelp : indique si le bouton Aide est affiché.
− AddExtension : ajout automatique d’une extension au nom de fichier si inexistante.
− CheckFileExists : affiche un message d'avertissement si nom de fichier inexistant.
− OverwritePrompt : affiche un avertissement si nom de fichier existe déjà .
− CreatePrompt : demande autorisation de créer un fichier si nom de fichier inexistant.
− CheckPathExists : indique si la boîte de dialogue affiche un message d'avertissement
lorsque l'utilisateur spécifie un chemin d'accès qui n'existe pas.
− ValidateNames : vérification ou non des noms de fichiers Win32 valides.
 Méthodes :
− ShowDialog() : exécute la boîte de dialogue en mode Modal.
− Stream ^OpenFile() : ouvre le fichier sélectionné par l'utilisateur dans la boîte de
dialogue avec les autorisations de lecture/écriture. Exemple :
Stream ^file ; If ( (file = sfdTexte→OpenFile()) != nullptr )
{ /* lecture/écriture dans le fichier ici */ file→Close(); }
Classe Stream (accès fichiers binaires, manipule des Stream) :
http://msdn.microsoft.com/fr-fr/library/system.io.stream_members(VS.80).aspx
Classe StreamWriter (écriture fichiers textes, manipule des StreamWriter) :
http://msdn.microsoft.com/fr-fr/library/system.io.streamwriter_members(VS.80).aspx
Classe StreamReader (lecture fichiers textes, manipule des StreamReader) :
http://msdn.microsoft.com/fr-fr/library/system.io.streamreader_members(VS.80).aspx
 Evènements :
− FileOk : se produit lorsque l'utilisateur clique sur le bouton Enregistrer.
− HelpRequest : l'utilisateur clique sur le bouton Aide dans la boîte de dialogue.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 73


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 74/103

Exemple : LECTURE/ECRITURE FICHIERS TEXTE AVEC LES BOITES DE DIALOGUES

LECTURE D’UN FICHIER ET AFFICHAGE AVEC UNE MESSAGEBOX :


// pour les accès fichiers EN HAUT DU HEADER DU FORMULAIRE PRINCIPAL
namespace testComposants2 {
using namespace System::IO;

// ---------------------------------------------
// OUVERTURE D'UN FICHIER TEXTE EN LECTURE SEULE
// ---------------------------------------------
private: System::Void lireToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{ // ouverture boîte de dialogue "choisir un fichier"
if (odgFileText->ShowDialog()==System::Windows::Forms::DialogResult::OK)
{ //récupération du nom du fichier sélectionné
System::String ^nameFile= odgFileText->FileName;
MessageBox::Show("Fichier sélectionné : " + nameFile);
// lecture du fichier texte sélectionné dans une boîte de message
System::IO::StreamReader ^ file = gcnew
System::IO::StreamReader(nameFile);
MessageBox::Show(file->ReadToEnd());
file->Close(); // fermeture fichier
}
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 74


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 75/103

MODIFICATION D’UN FICHIER DANS UN TEXTBOX ET SAUVEGARDE :

// ------------------------------------------------
// OUVERTURE D'UN FICHIER TEXTE EN LECTURE/ECRITURE
// ------------------------------------------------
private: System::Void modifierToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
// ouverture boîte de dialogue "choisir un fichier"
if (odgFileText->ShowDialog()==System::Windows::Forms::DialogResult::OK)
{ //récupération du nom du fichier sélectionné
System::String ^nameFile= odgFileText->FileName;

// lecture fichier texte, affichage dans la boîte d'édition multiligne


//-----------------------------------------------------------------
// initialisation du texte dans la boîte d'édition
txtFile->Text = "CONTENU DU FICHIER " + nameFile;
txtFile->Text = txtFile->Text + "\r\n";
txtFile->Text = txtFile->Text + "___________________";
txtFile->Text=txtFile->Text+Environment::NewLine+Environment::NewLine;
// déclaration variable associée au fichier
StreamReader ^file;
try
{ // référence sur le fichier texte de nom nameFile
file = gcnew StreamReader(nameFile);
// lecture de tout le fichier et affichage dans la boîte d'édition
txtFile->Text = txtFile->Text + file->ReadToEnd ();
}
finally
{ // en cas d'échec, fermeture du fichier s'il a bien été ouvert
if (file != nullptr) file->Close();
}
}
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 75


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 76/103

MODIFICATION D’UN FICHIER DANS UN TEXTBOX ET SAUVEGARDE :

// -----------------------------
// SAUVEGARDE D'UN FICHIER TEXTE
// -----------------------------
private: System::Void sauverToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{ // ouverture boîte de dialogue de sauvegarde du fichier
if (sdgFileText->ShowDialog()==System::Windows::Forms::DialogResult::OK)
{ //récupération du nom du fichier sélectionné
System::String ^nameFile= sdgFileText->FileName;
// si nom du fichier n'est pas vide, l'utiliser pour la sauvegarde
if(nameFile != "")
{ // déclaration variable associée au fichier de sauvegarde
StreamWriter ^filesave;
// référence sur le fichier texte de nom nameFile
filesave = gcnew StreamWriter(nameFile);
// écriture dans le fichier de sauvegarde
// --------------------------------------
// ajout d'information d'en-tête
filesave->Write("sauvegarde effectuée le
"+DateTime::Now+Environment::NewLine+Environment::NewLine+Environment::NewLine
+"...............");
filesave->Write(txtFile->Text); // sauve contenu de la textBox
filesave->Close(); // fermeture du fichier de sauvegarde
}
}
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 76


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 77/103

Exemple : LECTURE/ECRITURE FICHIERS TEXTE AVEC LES BOITES DE DIALOGUES

LECTURE D’UN FICHIER ET AFFICHAGE AVEC UNE MESSAGEBOX :


// pour les accès fichiers EN HAUT DU HEADER DU FORMULAIRE PRINCIPAL
namespace testComposants2 { using namespace System::IO;

private:System::Void btnImage_Click(System::Object^sender,System::EventArgs^e)
{ // affichage d'une boîte de dialogue de sauvegarde afin que
l'utilisateur puisse sauver l'image associée au bouton
SaveFileDialog ^ sdgImage = gcnew SaveFileDialog();
sdgImage->Filter= "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
sdgImage->Title = "Save an Image File";
sdgImage->ShowDialog();
System::String^nameFile=sdgImage->FileName; //récupération nom fichier
if(nameFile != "") // si le nom du fichier choisi n'est pas vide
{ // sauvegarde de l'image
System::IO::FileStream ^ fileImage =
safe_cast<System::IO::FileStream ^> (sdgImage->OpenFile());
// choix du format de sauvegarde en fonction du fichier sélectionné
// dans la boîte de dialogue de sauvegarde
switch(sdgImage->FilterIndex)
{ case 1 : btnImage->Image->
Save(fileImage,System::Drawing::Imaging::ImageFormat::Jpeg); break;
case 2 : btnImage->Image->
Save(fileImage,System::Drawing::Imaging::ImageFormat::Bmp); break;
case 3 : btnImage->Image->
Save(fileImage,System::Drawing::Imaging::ImageFormat::Gif); break;
}
fileImage->Close();
}}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 77


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 78/103

6.4- Le composant PRINTDIALOG

 MEMBRES DE LA CLASSE PRINTDIALOG (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.printdialog_members(VS.80).aspx

La boite de dialogue PrintDialog permet d'ouvrir la boite d'impression.

6.4.1- La configuration et l’utilisation d’une printdialog

Comment paramétrer et utiliser une printdialog ?

 Propriétés :

− AllowCurrentPage : indique si la case d'option Page active est affichée.


− AllowPrintToFile : indique si la case à cocher Imprimer dans un fichier est activée.
− PrintToFile : indique si la case à cocher Imprimer dans un fichier est sélectionnée.
− AllowSelection : indique si la case d'option Sélection est activée.
− AllowSomePages : indique si la case d'option Pages est activée.
− ShowHelp : indique si le bouton Aide est affiché.

 Méthodes :

− ShowDialog() : exécute la boîte de dialogue en mode Modal.

 Evènements :

− HelpRequest : l'utilisateur clique sur le bouton Aide dans la boîte de dialogue.

Exemple : IMPRESSION D’UNE IMAGE AVEC LA BOITE DE DIALOGUE

// pour les impressions EN HAUT DU HEADER


namespace testComposants2 {

using namespace System::Drawing::Printing;

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 78


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 79/103

// --------------------------
// LANCEMENT D'UNE IMPRESSION
// --------------------------
private: System::Void btnImage_Click(System::Object^sender,
System::EventArgs^e)
{ // déclaration du document à imprimer
PrintDocument^ pImage = gcnew PrintDocument();
// lien entre boite de dialogue d'impression et document à imprimer
prnImage->Document = pImage;
// si l'utilisateur a validé l'impression
if (prnImage->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{ // Ajout gestionnaire d'évènement qui imprime une page: PrintAPAge
pImage->PrintPage += gcnew PrintPageEventHandler(this,
&Form1::PrintAPage);
pImage->Print(); // lancement de l'impression
}
}
// --------------------------------------------------------------------
// GESTIONNAIRE D'EVENEMENT POUR CREER LE CONTENU DE LA PAGE A IMPRIMER
// --------------------------------------------------------------------
void PrintAPage(Object^ pSender, PrintPageEventArgs^ pe)
{ Graphics^ pageImage = pe->Graphics; // définition graphique à imprimer
// récupération de l'image du bouton
Bitmap^ bmp = safe_cast <Bitmap ^> (btnImage->Image);
// image dessinée sur la page en position (x,y) et taille (width,height)
int x=100, y=10, largeur=500, hauteur= 500;
pageImage->DrawImage(bmp,x,y,largeur,hauteur);
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 79


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 80/103

6.5- Le composant COLORDIALOG


 MEMBRES DE LA CLASSE COLORDIALOG (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.colordialog_members(VS.80).aspx

La boite de dialogue ColorDialog permet d'ouvrir une boite de sélection de couleur.

6.5.1- La configuration et l’utilisation d’un colordialog

Comment paramétrer et récupérer le choix d’une colordialog ?


 Propriétés :
− AnyColor : indique si la boîte de dialogue affiche toutes les couleurs disponibles dans
le jeu de couleurs de base.
− SolidColorOnly : indique si l’utilisateur ne peut sélectionner que des couleurs unies.
− AllowFullOpen : indique si l'utilisateur peut utiliser les couleurs personnalisées.
− FullOpen : indique si les contrôles permettant de créer des couleurs personnalisées
s'affichent à l'ouverture de la boîte de dialogue.
− Color : couleur sélectionnée par l'utilisateur.
− ShowHelp : indique si un bouton Aide figure dans la boîte de dialogue des couleurs.
 Méthodes :
− ShowDialog() : exécute la boîte de dialogue en mode Modal.
 Evènements :
− HelpRequest : l'utilisateur clique sur le bouton Aide dans la boîte de dialogue.

Exemple : CHANGEMENT D’UNE COULEUR AVEC LA BOITE DE DIALOGUE

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :


// --------------------------
// CHANGEMENT DE LA COULEUR DE
FOND DU TITRE
// --------------------------
private: System::Void
btnCouleur_Click(System::Object^
sender, System::EventArgs^ e)
{ // si le choix de couleur
est validé dans la boîte de
dialogue
if (cdgTitre-> ShowDialog()
== System::Windows::Forms::
DialogResult::OK)
{ // changement de la
couleur du label
lblTitre-> BackColor=
cdgTitre->Color;
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 80


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 81/103

6.6- Le composant FONTDIALOG


 MEMBRES DE LA CLASSE FONTDIALOG (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.fontdialog_members(VS.80).aspx

La boite de dialogue FontDialog permet d'ouvrir une boite de sélection de fontes.

6.6.1- La configuration et l’utilisation d’une fontdialog


Comment paramétrer et récupérer le choix d’une fontdialog ?
 Propriétés :
− Font : police sélectionnée.
− Color : couleur de la police sélectionnée.
− MinSize : taille minimale, en points, pouvant être sélectionnée par un utilisateur.
− MaxSize : taille maximale, en points, pouvant être sélectionnée par un utilisateur.
− ShowApply : indique si la boîte de dialogue comporte un bouton Appliquer.
− ShowColor : indiquant si la boîte de dialogue propose un choix de couleurs.
− ShowEffects : indiquant si la boîte de dialogue comporte des contrôles permettant à
l'utilisateur de spécifier des options de mise en forme du texte (barré, souligné...).
− ShowHelp : indiquant si la boîte de dialogue comporte un bouton Aide.
 Méthodes :
− ShowDialog() : exécute la boîte de dialogue en mode Modal.
 Evènements :
− Apply : l'utilisateur clique sur le bouton Appliquer dans la boîte de dialogue.
− HelpRequest : l'utilisateur clique sur le bouton Aide dans la boîte de dialogue.

Exemple : CHANGEMENT DE LA FONTE AVEC LA BOITE DE DIALOGUE

DANS LE FICHIER DU FORMULAIRE PRINCIPAL :

// si l'utilisateur a
validé le choix de font
dans la boîte de
dialogue

if (fdgTitre->
ShowDialog() ==
System::Windows::Forms:
:DialogResult::OK)
{
// changement de la
couleur du label
lblTitre->Font=
fdgTitre->Font;
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 81


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 82/103

7- Les composants de manipulation de dates

7.1- Le composant DATETIMEPICKER

 MEMBRES DE LA CLASSE DATETIMEPICKER(espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.datetimepicker_members(VS.80).aspx

La classe DateTimePicker est utilisée pour permettre à l'utilisateur de sélectionner une


date et une heure, et pour afficher cette valeur date et heure au format spécifié.
Le DateTimePicker et le MonthCalendar sont très proches. Le DateTimePicker permet
de définir un format de date personnalisé.

7.1.1- La configuration d’un datetimepicker

Comment paramétrer un datetimepicker ?

 Propriétés :

− CalendarFont : police dans le datetimepicker.


− CalendarMonthBackground : couleur d’arrière plan de la zone de dates du calendrier.
− CalendarTitleBackColor : couleur d'arrière-plan de la zone de titre du calendrier.

− MinDate : date minimale autorisée (classe DateTime : voir la classe MonthCalendar,


paragraphe suivant).
− MaxDate : date maximale autorisée (DateTime).

7.1.2- L’utilisation d’un datetimepicker

Comment faire fonctionner un datetimepicker ?

 Propriétés :

− Value : valeur de date/heure assignée au datetimepicker (DateTime).


Exemple :
dtpDate→Value = DateTime::Now;
MessageBox::Show( dtpDate→Value.ToString());

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 82


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 83/103

− Format : format d’affichage de la date et de l’heure dans le datetimepicker. Si la


propriété Format a la valeur DateTimePickerFormat.Custom, un format
personnalisépeut-être défini avec la propriété CustomFormat.
Valeurs possibles :
Custom date/heure affichées dans un format personnalisé.
Long date/heure affichées dans le format de date longue.
Short date/heure affichées dans le format de date courte.
Time date/heure affichées dans le format d'heure.

− CustomFormat : format d’affichage de la date, c’est une chaîne de format


personnalisée. Cette dernière peut être une combinaison de caractères de champ
personnalisés et d'autres caractères littéraux (formats personnalisés :
http://msdn.microsoft.com/fr-fr/library/8kb3ddd4(VS.80).aspx, formats standards :
http://msdn.microsoft.com/fr-fr/library/az4se3k1(VS.80).aspx).
Exemples :
format 11 octobre 2001 – jeudi ↔ "dd MMMM yyyy - dddd"
format 11 octobre à 9h43 ↔ "dd MMMM 'à' h'h'mm"
format 11/10/2001 09:06 ↔ "dd'/'MM'/'yyyy hh':'mm"

 Evènements :

− ValueChanged : se produit lorsque la propriété Value est modifiée.

Exemple : AFFICHAGE DE LA DATE D’UN DATETIMEPICKER DANS UN LABEL

// ----------------------------------
// RECUPERATION DE LA DATE CHOISIE
// La propriété Format = Custom
// Le CustomFormat = dddd dd MMMM yyyy
// ----------------------------------
private: System::Void
dateTimePicker1_ValueChanged(System::Obj
ect^ sender, System::EventArgs^ e)
{

lblDate->Text= dtpDate->Text ;
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 83


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 84/103

7.2- Le composant MONTHCALENDAR

 MEMBRES DE LA CLASSE MONTHCALENDAR (espace de noms


System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.monthcalendar_members(VS.80).aspx

La classe MonthCalendar permet à l'utilisateur de sélectionner une date et une heure à l'aide
d'un affichage visuel.

7.2.1- La configuration d’un monthcalendar

Comment paramétrer un monthcalendar ?


 Propriétés :
− Font : police dans le monthcalendar.
− BackColor : couleur d'arrière-plan de la zone de dates du calendrier.
− TitleBackColor : couleur d'arrière-plan de la zone de titre du calendrier.

− FirstDayOfWeek : premier jour de la semaine affiché dans le calendrier du mois.


− MinDate : date minimale autorisée (classe DateTime : http://msdn.microsoft.com/fr-
fr/library/system.datetime_members(VS.80).aspx avec les membres :
⋅ Propriété Date : Composant Date (DateTime).
⋅ Propriété Year : année (int).
⋅ Propriété Month : mois (int).
⋅ Propriété Day : jour du mois (int).
⋅ Propriété DayOfWeek : jour de la semaine (énumération : Monday, Tuesday,
Wenesday, Thursday, Friday, Saturday, Sunday). Exemple :
If ( dt.DayOfWeek == DayOfWeek::Thursday )
⋅ Propriété DayOfYear : jour de l’année (int).
⋅ Propriété Hour : heure (int).
⋅ Propriété Minute : minutes (int).
⋅ Propriété Second : secondes (int).
⋅ Propriété Millisecond : nombre de millisecondes (int).
⋅ Propriété Today : date actuelle (DateTime).
⋅ Propriété Now : temps actuel (DateTime).

⋅ Méthode ToShortDateString() : convertit au format de date courte.


⋅ Méthode ToLongDateString() : convertit au format de date longue.
⋅ Méthode ToShortTimeString() : convertit au format d'heure courte.
⋅ Méthode ToLongTimeString() : convertit au format d'heure complète.
⋅ Méthode ToString() : convertit sous forme de chaîne de caractères.
⋅ Méthode ToFileTime() : convertit la valeur de DateTime en heure de fichier
Windows.
⋅ Méthode DaysInMonth(année,mois) : retourne le nombre de jours compris
dans le mois et l'année spécifiés (donnés sous forme de int).

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 84


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 85/103

− MaxDate : date maximale autorisée (DateTime).


− ShowWeekNumbers : indique si le monthcalendar affiche la numérotation des
semaines (1-52) à gauche de chaque ligne de jours.
− MonthlyBoldedDates : tableau d'objets DateTime qui détermine les jours du mois à
afficher en gras. Via le concepteur : cliquer sur la propriété, ajouter des jours et fixer
leur Value grâce au calendrier. Modification de la propriété par code :
array<System::DateTime>^jourGras = { System::DateTime(2002,1,15,0,0,0,0),
System::DateTime(2002,1,30,0,0,0,0 )};
− TodayDate : valeur utilisée par le monthcalendar comme date du jour.
− ShowToday : indique si la propriété TodayDate est affichée en bas du monthcalendar.
− ShowTodayCircle : indique si la date du jour est entourée par un cercle ou un carré.

7.2.2- L’utilisation d’un monthcalendar


Comment faire fonctionner un monthcalendar ?
 Propriétés :
− MaxSelectionCount : nombre maximal de jours pouvant être sélectionnés.
− SelectionRange : plage de dates sélectionnée dans le monthcalendar.
− SelectionStart : date et heure de début de la plage de dates sélectionnée (DateTime).
− SelectionEnd : date de fin de la plage de dates sélectionnée (DateTime).

 Evènements :
− DateChanged : se produit lorsque la date sélectionnée est modifiée. Le paramètre
DateRangeEventArgs du gestionnaire d’évènements a pour propriétés :
⋅ Start : 1° valeur de date/heure dans la plage que l'utilisateur a sélectionnée.
⋅ End : dernière valeur de date/heure dans la plage que l'utilisateur a sélectionnée.
Exemple, affichage des dates de début et de fin dans un label :
lblDate->Text = String::Format( "Date Changed: Start = {0} : End = {1}",
e→Start.ToShortDateString(), e→End.ToShortDateString() );
− DateSelected : se produit lorsque l'utilisateur effectue une sélection de date explicite à
l'aide de la souris. Le gestionnaire d’évènement utilise le paramètre
DateRangeEventArgs (voir évènement DateChanged).

Exemple : AFFICHAGE DE LA DATE D’UN MONTHCALENDAR DANS UN LABEL

// -------------------------------
// RECUPERATION DE LA DATE CHOISIE
// -------------------------------
private: System::Void
mtcDate_DateSelected(System::Object^
sender,
System::Windows::Forms::DateRangeEventAr
gs^ e)
{
lblDate->Text= mtcDate->
SelectionStart.Date.ToString("d") ;
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 85


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 86/103

8- Les composants d’affichages structurés

8.1- Le composant LISTVIEW

 MEMBRES DE LA CLASSE LISTVIEW (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.listview_members(VS.80).aspx

La classe listview est utilisé pour afficher des listes d'éléments avec le texte de chaque
élément et, éventuellement, une icône identifiant le type de l'élément. Voir par exemple, la
liste de fichiers de l'Explorateur Windows.

Le contrôle ListView ressemble au contrôle ListBox dans la mesure où il affiche une liste d'éléments. La
principale différence est que le contrôle ListView permet à l'utilisateur d'afficher les éléments de la liste de
différentes manières.

8.1.1- La configuration d’une listview

Comment paramétrer une listview ?


 Propriétés :
− Items : collection des éléments (objet ListViewItem) de la listview.

− Items[i] : c’est un ListViewItem (ajouter un item dans la propriété Items pour avoir
accès aux propriétés de l’Item) : un élément de la collection de la listview. Cette classe
possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.listviewitem_members(VS.80).aspx) :
⋅ Propriété BackColor : couleur d'arrière-plan de l’élément.
⋅ Propriété Text : intitulé de l’élément.
⋅ Propriété Font : police du texte de l’élément.
⋅ Propriété Checked : élément coché ou non.
⋅ Propriété ImageIndex : indice de l’image (dans les imagelist associée au
listview via les propriétés LargeImageList et SmallImageList) qui est affichée
devant l’élément.
⋅ Propriété ImageKey : nom de l’image affichée devant l’élément.
⋅ Propriété SubItems : collections contenant tous les sous-éléments de l'élément.
⋅ SubItems[i] : c’est un ListViewSubItem (ajouter un subitem dans la propriété
SubItems pour avoir accès aux propriétés du SubItem) : un sous-élément d’un
élément de la collection de la listview. Cette classe possède différents membres
o Propriété BackColor : couleur d'arrière-plan du sous élément.
o Propriété Text : intitulé du sous élément.
o Propriété Font : police du texte du sous élément.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 86


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 87/103

− Columns : collection contenant tous les en-têtes de colonne qui apparaissent dans la
listview. Ses membres : http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.listview.columnheadercollection_members(VS.80).asp
x
− Columns[i] : une colonne de la collection Columns (ajouter une colonne dans la
propriété Columnss pour avoir accès aux propriétés de la colonne). Cette classe possède
différents membres :
⋅ Propriété Text : intitulé de la colonne.
⋅ Propriété TextAlign : alignement du titre de colonne (Left, Right, Center).
⋅ Propriété Width : largeur de colonne.

− AllowColumnReorder : indique si l'utilisateur a la possibilité de réorganiser les


colonnes de la listview en faisant glisser leur en-tête.

− LargeImageList et SmallImageList : composants imagelist avec les images pour la


listview, devant les intitulés des éléments. Pour utiliser ces images, il faut aussi fixer les
propriétés ImageIndex ou ImageKey des éléments.

− View : façon d'afficher les éléments dans la listview.


Valeurs possibles :
Details Chaque élément s'affiche sur une ligne séparée et ses sous-éléments sont
disposées en colonnes.
LargeIcon Chaque élément s'affiche sous forme d'une icône de taille normale, avec
une étiquette placée au-dessous.
List Chaque élément s'affiche sous forme d'une petite icône, avec une
étiquette placée à droite. Les éléments sont répartis dans des colonnes
sans en-têtes.
SmallIcon Chaque élément s'affiche sous forme d'une petite icône, avec une
étiquette placée à droite.
Tile Chaque élément apparaît sous la forme d'une icône normale avec
l'étiquette d'élément et les informations de sous-élément à sa droite.

− GridLines : indique si un quadrillage s'affiche entre les lignes et les colonnes contenant
des éléments et des sous-éléments à l'intérieur de la listview (en mode Détail).

− CheckBoxes : indique si une case à cocher doit apparaître devant chaque élément.
− FullRowSelect : indique si le fait de cliquer sur un élément sélectionne aussi tous ses
sous-éléments.

− Sorting : ordre de tri des éléments de la listview.


Valeurs possibles :
Ascending Les éléments sont triés par ordre croissant.
Descending Les nœuds sont triés par ordre décroissant.
None Les éléments ne sont pas triés.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 87


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 88/103

8.1.2- L’utilisation d’une listview

Comment faire fonctionner une listview ?

 Propriétés :

− Items : collection des éléments (objet ListViewItem) de la listview. Cette classe possède
différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.listview.listviewitemcollection_members(VS.80).aspx)
, dont :

⋅ Propriété Count : nombre d'éléments figurant dans la collection.


⋅ Méthode Insert(index,^ListViewItem) : insère un élément ListViewItem dans
la collection à l'indice spécifié.
⋅ Méthode RemoveAt(index) : supprime un élément ListViewItem de la
collection à l'indice spécifié.

− Items[i] : c’est un ListViewItem : un élément de la collection de la listview. Cette


classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.listviewitem_members(VS.80).aspx) :

⋅ Propriété SubItems : collections contenant tous les sous-éléments de l'élément.


Cette classe possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.listviewitem.listviewsubitemcollection_membe
rs(VS.80).aspx), dont :

o Propriété Count : nombre de sous-éléments figurant dans la collection.


o Méthode Insert(index,^ListViewSubItem) : insère un sous-élément
ListViewSubItem dans la collection à l'indice spécifié.
o Méthode RemoveAt(index) : supprime un sous-élément
ListViewSubItem de la collection à l'indice spécifié.

 Evènements :

− ItemCheck : se produit lorsqu'un élément est coché ou décoché (si la propriété


CheckBox est à true !). Le paramètre ItemCheckEventArgs du gestionnaire
d’évèvement associé possède les membres suivants :

⋅ Propriété Index : indice de l’élément cliqué.


⋅ Propriété NewValue : état de la checkbox associée à l’élément cliqué : par
exemple, CheckState::Checked ou CheckState::Unchecked.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 88


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 89/103

Exemple : GESTION DE STOC INFORMATIQUE AVEC UNE LISTVIEW

AJOUTS D’ELEMENTS A LA LISTE A PARTIR DE SAISIES UTILISATEUR :

//-----------------------------------
// Ajout d'enregistrements à la liste
//-----------------------------------
private: System::Void btnAjouter_Click(System::Object^ sender,
System::EventArgs^ e)
{ // ajout d'un nouvel enregistrement (item et 2 subitems) à partir des
// caractéristiques du matériel entrées par l'utilisateur
// ------------------------------------------------------------------
// sauvegarde des caractéristiques du nouveau matériel dans un tableau
// de string ; nouvel élément : type(item), réf(subitem), prix(subitem)
array<String^> ^ nomChamps = {txtTypeMateriel->Text,txtReference->
Text,txtPrix->Text};

// création du nouvel enregistrement à partir du nom des 3 champs, de


// l'indice de l'image associée au matériel dans une imageList, de la
// couleur du premier plan de l'enregistrement (couleur police), de la
// couleur de fond de l'enregistrement et de la font
System::Drawing::Font ^ police = gcnew System::Drawing::Font("Arial",
11, FontStyle::Bold);
ListViewItem ^ enregistrement = gcnew ListViewItem(nomChamps,-
1,Color::DarkViolet,Color::Yellow,police);

// insertion du nouvel enregistrement dans la listview, en dernier


lsvStoc->Items->Insert(lsvStoc->Items->Count, enregistrement );
// association d’un indice dans les imageList pour grande et petites
//icônes (pour les différents modes d'affichage d'icônes)
lsvStoc->Items[lsvStoc->Items->Count-1]->ImageIndex= lsvStoc->Items->
Count-1;

// zones de saisie effacée


txtTypeMateriel->Clear(); txtReference->Clear(); txtPrix->Clear();
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 89


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 90/103

GESTION VISUELLE DES ELEMENTS DE LA LISTE :

// --------------------------------------
// Suppression d'un enregistrement cliqué
// --------------------------------------
private: System::Void lsvStoc_ItemCheck(System::Object^ sender,
System::Windows::Forms::ItemCheckEventArgs^ e)
{ // si l'enregistrement choisi n'est pas le dernier
if (e->Index < lsvStoc->Items->Count -1)
{ if( e->NewValue == CheckState::Checked ) // s'il est devenu coché
{ lsvStoc->Items->RemoveAt(e->Index); //supprimer l’enregistrement
}
}
}

// ------------------------------------------
// Inversion ordre de tri des enregistrements
// ------------------------------------------

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 90


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 91/103

private: System::Void btnTrier_Click(System::Object^ sender,


System::EventArgs^ e)
{ // inverser ordre tri (MARCHE SI SORTING EST A NONE DANS LE CONCEPTEUR)
if (lsvStoc->Sorting == SortOrder::Ascending)
{ // ordre décroissant selon l'item (1° colonne : type matériel)
lsvStoc->Sorting = SortOrder::Descending;
}
else
{ lsvStoc->Sorting = SortOrder::Ascending; // ordre croissant
}
}

// ---------------------------------
// Modification affichage des icônes
// ---------------------------------
private: System::Void listeToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{ lsvStoc->View = View::List; // voir la liste sous forme de liste }

private: System::Void détailsToolStripMenuItem_Click(System::Object^ sender,


System::EventArgs^ e)
{ lsvStoc->View = View::Details; // vue détaillée de la liste }

private: System::Void miniaturesToolStripMenuItem_Click(System::Object^


sender, System::EventArgs^ e)
{ lsvStoc->View = View::SmallIcon; // vue miniatures }

private: System::Void icônesToolStripMenuItem_Click(System::Object^ sender,


System::EventArgs^ e)
{ lsvStoc->View = View::LargeIcon; // vue sous forme d'icônes }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 91


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 92/103

8.2- Le composant TREEVIEW

 MEMBRES DE LA CLASSE TREEVIEW (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.treeview_members(VS.80).aspx

La classe TreeView permet d'afficher des éléments sous une forme arborescente. Très utilisé,
avec ses noeuds cliquables et déroulables, elle est au centre de beaucoup d'application,
comme dans l'explorateur de fichiers de windows.

8.2.1- La configuration d’un treeview


Comment modifier l’apparence d’un treeview ?
 Propriétés :
− Nodes : collection des nœuds d’arbre (objet TreeNode) du treeview. Cette classe
possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.treenodecollection(VS.80).aspx), dont :
⋅ Propriété Text : intitulé du noeud.
⋅ Propriété Checked : nœud coché ou non.
⋅ Propriété ImageIndex : indice de l’image (de l’imagelist) d'un nœud d'arbre non
sélectionné ; Propriété SelectedImageIndex : indice de l’image (de l’imagelist)
d’un nœud sélectionné.
− CheckBoxes : présence ou non de cases à cocher devant tous les nœuds du treeview.
− ShowPlusMinus : provoque l'affichage d'un bouton (+) ou (-) à côté de chaque nœud,
permettant respectivement de développer ou réduire le noeud.
− ShowRootLines : affichage ou non de lignes reliant les nœuds d'arbre racines entre eux.
− ShowLines : affichage ou non de lignes qui relient les nœuds enfants à leur racine.
− HotTracking : modification ou non de l'apparence des étiquettes des nœuds d'arbre
lorsque le pointeur de la souris passe dessus (éventuellement lien hypertexte).
− ImageList : composant imagelist avec les images pour le treeview, à côté des nœuds
d'arbre. Pour utiliser ces images, il faut aussi fixer les propriétés ImageIndex/ImageKey
et SelectedImageIndex/SelectedImageKey. Quelques propriétés de cette classe :
⋅ ColorDepth : profondeur (nombre) de couleur disponibles pour les images.
⋅ TransparentColor : couleur à traiter comme transparente.
⋅ Imagesize : taille des images dans la liste d'images, 16x16 ici.
⋅ Images : collection d’images de l’imagelist. Renseigner la propriété Name de
chaque image, afin d'y accéder facilement par la suite (correspond au Key) :
imgPC→Images["RAM"] ou imgPC→Images[0].
− ImageIndex : indice de l’image (dans l’imagelist associé) affichée lorsqu' un nœud
d'arbre est non sélectionné. Pour personnaliser l’image d’un nœud non sélectionné, il
faut initialiser la propriété TreeNode.ImageIndex (trvStoc→Nodes[i] →ImageIndex).
− ImageKey : nom de l’image (de l’imagelist) pour un nœud d'arbre non sélectionné.
− SelectedImageIndex : indice de l’image (de l’imagelist) d’un nœud d'arbre sélectionné.
Pour personnaliser l’image d’un nœud, initialiser la propriété
TreeNode.SelectedImageIndex (trvStoc→Nodes[i] →SelectedImageIndex).
− SelectedImageKey : nom de l’image (de l’imagelist) pour un nœud d'arbre sélectionné.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 92


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 93/103

8.2.2- L’utilisation d’un treeview

Comment faire fonctionner un treetview ?


 Propriétés :
− Nodes : collection des nœuds d’arbre (objet TreeNode) du treeview. Cette classe
possède différents membres (http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.treenodecollection(VS.80).aspx), dont :
⋅ Méthode Expand() : développe un nœud du treeview :
trvStoc→Nodes[0] →Expand() ;
⋅ Méthode Collapse() : réduit un nœud du treeview :
trvStoc→Nodes[0] →Collapse() ;
⋅ Méthode Add(TreeNode ^) : ajoute un nœud d'arbre précédemment créé à la fin
de la collection de nœuds du treeview. Différents prototypes existent pour cette
fonction: http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.treenodecollection.add(VS.80).aspx
⋅ Méthode Remove(TreeNode ^) : supprime, de la collection de nœuds du
treeview, le nœud d’arbre spécifié.
⋅ Méthode Clone() : exemple
TreeNode ^noeudClone=safe_cast <TreeNode^> (trvStoc→Nodes[0] →Clone())
copie le nœud d'arbre Nodes[0] et l'ensemble du sous-arbre rattaché à ce nœud
d'arbre dans un nouveau TreeNode.
− AllowDrop : indication si le treeview peut accepter des données que l'utilisateur y fait
glisser. Si cette propriété est à false, aucun opération de glisser/déplacer ne sera
possible.

 Méthodes :
− ExpandAll() : développe tous les nœuds du treeview.
− CollapseAll() : réduit tous les nœuds du treeview.
− GetNodeAt(Point) ou GetNode(X,Y) : récupère le nœud d'arbre situé au point spécifié.

 Evènements :
− DoDragDrop(données à faire glisser, type de glissement) : démarre une opération
glisser-déplacer. Le type de glissement peut-être :
All Les données sont copiées, supprimées de la source de glissement et
parcourues dans la cible de déplacement.
Copy Les données sont copiées dans la cible de déplacement.
Link Les données issues de la source de glissement sont liées à la cible de
déplacement.
Move Les données issues de la source de glissement sont déplacées vers la
cible de déplacement.
None La cible de déplacement n'accepte pas les données.
Scroll Le défilement est sur le point de commencer ou est en cours dans la
cible de déplacement.

− ItemDrag : événement déclenché du treeview source dès que l'utilisateur commence à


déplacer un nœud d'arborescence. Dans le gestionnaire d’évènements associé, il faut

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 93


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 94/103

appeler la méthode DoDragDrop() pour lancer la procédure de glisser/déplacer. Le


paramètre ItemDragEventArgs du gestionnaire d’évènement possède les membres :
⋅ Propriété Button : indique les boutons de la souris sur lesquels l'utilisateur a
appuyé lors de l'opération glisser. Exemple :
if (e→Button == System::Windows::Forms::MouseButtons::Left)
⋅ Propriété Item : élément que l'utilisateur fait glisser.

− DragEnter : se produit, au niveau de la destination, lorsqu'un objet (ici un nœud -


TreeNode-) est déplacé dans les limites du treeview de destination. L'événement
DragEnter autorise un type de glissement (voir tableau du DoDragDrop()) sur le
treeview de destination. Le paramètre DragEventArgs du gestionnaire d’évènement
possède les membres suivants :
⋅ Propriété AllowedEffect : opérations de glisser-déplacer qui ont été autorisées
par la source de l'événement Glisser. Voir le tableau des types de glissement.
⋅ Propriété Effect : effet provoqué sur la destination dans une opération de glisser-
déplacer. Voir le tableau des types de glissement.
⋅ Propriété Data : données associées à l’opération de glisser/déplacer. Différents
membres sont disponibles :
o Méthode GetData(String) ou GetData(type) : récupère les données
associées au format de données ou de type de classe spécifié.
o Méthode GetDataPresent(String) ou GetDataPresent(type) :
détermine si les données Data sont associées au format spécifié.
⋅ Propriété KeyState : état actuel des touches MAJ, CTRL et ALT, ainsi que l'état
des boutons de la souris. Exemples :
if ( (e→KeyState & (8 + 32)) == (8 + 32) ) // détection touche CTL + ALT
if ( (e→KeyState & 32) == 32 ) // détection touche ALT
if ( (e→KeyState & 4) ==4 ) // détection touche SHIFT
if ( (e→KeyState & 8) ==8 ) // détection touche CTL

⋅ Propriété X : coordonnée x du pointeur de la souris, en coordonnées d'écran


(pixels).
⋅ Propriété Y : coordonnée y du pointeur de la souris, en coordonnées d'écran
(pixels).
Pour convertir X et Y en coordonnées clientes (position dans un composant)
Point pPixels(X,Y);
Point pClient= Composant→PointToClient(pPixels) ;

− DragDrop : le dernier événement à gérer est l'événement DragDrop du treeview de


destination. Une opération de glisser-déplacer est en cours et l'objet TreeNode qui est
glissé a été déplacé sur le treeviex de destination. Dans le gestionnaire d’évènement, il
faut extraire l'objet TreeNode de la source, l’ajouter à la destination. Le gestionnaire
d’évènements du DragDrop possède un paramètre DragEventArgs (voir l’évènement
DragEnter).
− DragLeave : se produit lorsque le noeud est déplacé hors des limites du treeview de
destination.
− DragOver : se produit lorsque le noeud est déplacé dans les limites du treeview de
destination.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 94


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 95/103

Exemple : GESTION STOCS /PANIER CLIENT AVEC DEPLACEMENT DES PRODUITS

AUTORISATION DE L’OPERATION DE DEPLACEMENT :

// -----------------------------------------------------
// ItemDrag : cet événement est déclenché de la source contrôle TreeView dès
// que l'utilisateur démarre déplacer le nœud d'arborescence. Appeler alors la
// méthode DoDragDrop pour lancer la procédure de glisser/déplacer.
// -----------------------------------------------------
private: System::Void trvStoc_ItemDrag(System::Object^ sender,
System::Windows::Forms::ItemDragEventArgs^ e)
{ // démarrage d’une opération de déplacement pour l'élément glissé
DoDragDrop(e->Item, DragDropEffects::Move); }

// -----------------------------------------------------
// DragEnter : à gérer dans la destination contrôle TreeView.
// Cet événement se produit lorsque à partir de la source contrôle TreeView,
// l'utilisateur glisser l'objet TreeNode vers un point de la destination
// contrôle TreeView. L'événement DragEnter spécifie l'opération de
// déplacement/copie valide pour ce contrôle.
// -----------------------------------------------------
private: System::Void trvClient_DragEnter(System::Object^ sender,
System::Windows::Forms::DragEventArgs^ e)
{ // ATTENTION : le treeview de destination doit posséder au moins un nœud
e->Effect = DragDropEffects::Move; }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 95


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 96/103

REALISATION DU DEPLACEMENT :

// -----------------------------------------------------
// DragDrop : l'événement DragDrop de la destination contrôle TreeView.
// Cet événement se produit lorsque l'objet TreeNode qui est glissé a été
// laché sur la destination contrôle TreeView.
// l'objet TreeNode sélectionné est extrait du treeview source (trvStoc) et
// ajouté au treeview destination (trvClient).
// L'objet Data permet de récupérer les données à transférer.
// La méthode GetData de l'objet Data extrait le nœud qui est glissé à partir
// du treeview source. La méthode GetNodeAt détermine où ce nœud est ajouté
// sur le contrôle de destination. Après avoir déterminé la position
// destination, ajouté le nœud source comme un enfant du nœud de destination,
// supprimer le nœud source du TreeView source (opération de déplacement).
// -----------------------------------------------------

private: System::Void trvClient_DragDrop(System::Object^ sender,


System::Windows::Forms::DragEventArgs^ e)
{

// la méthode GetDataPresent détermine si les données stockées par le


// glisser/déplacer sont disponibles.
if(e->Data->GetDataPresent("System.Windows.Forms.TreeNode"))
{
// récupération des coordonnées du pointeur de la souris dans le
// treeview de destination (trvClient)
Point p(e->X,e->Y);
// Calcul emplacement du point destination à l'écran à partir des
// coordonnées souris
Point pt = safe_cast <TreeView ^> (sender)->PointToClient(p);

// crée le noeud d'arbre destination


TreeNode ^ DestinationNode = safe_cast <TreeView ^> (sender)->
GetNodeAt(pt);

// lien vers les données à glisser/déplacer


TreeNode ^ NewNode = safe_cast <TreeNode ^> (e->Data->
GetData("System.Windows.Forms.TreeNode"));

// Ajout des données à transférer dans le noeud destination


DestinationNode->Nodes->Add(safe_cast <TreeNode ^> (NewNode->
Clone()));

// visualisation (par ouverture de l'arbre) du noeud et de ses


// enfants rajoutés
DestinationNode->ExpandAll();

// suppression du noeud d'origine


NewNode->Remove();
}
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 96


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 97/103

9- Les composants de manipulation d’images

9.1- Le composant PICTUREBOX

 MEMBRES DE LA CLASSE PICTUREBOX (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.picturebox_members(VS.80).aspx

La classe PictureBox sert à afficher des images


bitmap, icône, JPEG, GIF, PNG, métafichiers
(certains EMF, WMF).

9.1.1- La configuration d’une picturebox

Comment paramétrer une picturebox ?


 Propriétés :
− BackColor : couleur d'arrière-plan
de la picturebox.
− BackgroundImage : image
d'arrière-plan affichée dans la
picturebox.

− BackgroundImageLayout : façon dont l’image d'arrière-plan est affichée.


− BorderStyle : type de bordure de la picturebox.
− ErrorImage : image à afficher lorsqu'une erreur se produit pendant le processus de
chargement d'image ou si le chargement d'image est annulé.
− Image : image que la picturebox affiche.
− ImageLocation : chemin d'accès de l’image à afficher dans la picturebox.
− InitialImage : image affichée au cours du chargement de l'image principale.
− SizeMode : indique comment l'image est affichée.
Valeurs possibles :
AutoSize La picturebox est dimensionnée selon la taille de l'image contenue.
CenterImage L'image est affichée au centre de la picturebox ; si l'image est plus
grande que la picturebox, les bords externes sont découpés.
Normal L'image est placée dans le coin supérieur gauche de la picturebox.
L'image est découpée si elle est plus grande que la picturebox.
StretchImage L'image contenue dans la picturebox est étirée ou rétrécie pour
correspondre à la taille de la picturebox.
Zoom L'image est augmentée ou réduite en conservant les proportions.

 Méthodes :
− Load() ou Load(url) : affiche l’image précisée dans ImageLocation ou affecte à
ImageLocation l'URL spécifiée et affiche l'image indiquée.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 97


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 98/103

9.2- Le composant IMAGELIST


 MEMBRES DE LA CLASSE IMAGELIST (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.imagelist_members(VS.80).aspx

La classe ImageList est utilisé pour stocker des images. Son intérêt est sa facilité
d'utilisation avec d'autres contrôles (ListView, TreeView, Toolbar, ...).

9.2.1- L’utilisation d’une imagelist


Comment remplir et utiliser une imagelist ?
 Propriétés :
− ColorDepth : profondeur (nombre) de couleur disponibles pour les images.
− TransparentColor : couleur à traiter comme transparente. Membres Color :
http://msdn2.microsoft.com/fr-fr/library/system.drawing.color_members(VS.80).aspx
− Imagesize : taille des images dans la liste d'images. A fixer avant d’ajouter les images.
− Images : collection d’images dans l’imagelist. Cliquer pour ajouter des images. Ne pas
oublier de renseigner la propriété Name de chaque image ajoutée, afin d'y accéder
facilement par la suite (correspond au Key). Il est alors possible d’accéder à une image
très facilement : imgJardin→Images["arbre"] ou imgJardin→Images[0]. La classe
associée à Images possède différents membres (http://msdn2.microsoft.com/fr-
fr/library/system.windows.forms.imagelist.imagecollection_members(VS.80).aspx):
⋅ Propriété Count : nombre d'images actuellement dans la liste.
⋅ Propriété Empty : valeur indiquant si l’imagelist possède des images.
⋅ Propriété Item(index ou key) : image dans un imagelist existant.
⋅ Propriété Keys : collection de clés (noms) associée aux images d’une imagelist.
⋅ Méthode Add(image) : ajout d’une image dans l’imagelist. Exemples :
imgJardin→Images→Add( Bitmap::FromFile( "C:\\MySmallImage2.bmp" ));
imgJardin→Images→Add( Image::FromFile( "c:\\FeatherTexture.bmp" ));
⋅ Méthode SetKeyName (index,name) : définit la clé de l’image d’indice donné.

Exemple : CHARGEMENT D’IMAGES DE DIFFERENTS FORMATS

TRANSFERT D’UNE IMAGE DE IMAGELIST→PICTUREBOX (CHOIX DANS 1 COMBOBOX) :

// -------------------------
// Récupération du choix de
l’image dans la combobox
// -------------------------
private: System::Void cbImage_
SelectedIndexChanged(System::Obje
ct^sender, System::EventArgs^ e)
{ //transfert image de imagelist
(via son indice) vers picturebox
picImage->Image= imgImages->
Images[cbImage->SelectedIndex];
}

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 98


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 99/103

10- Les composants de manipulation des pages WEB

10.1- Le composant LINKLABEL


 MEMBRES DE LA CLASSE LINKLABEL (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.linklabel_members(VS.80).aspx
La classe LinkLabel est analogue à la classe Label, à la différence qu'elle peut afficher un
lien hypertexte.

10.1.1- L’aspect d’un linklabel


Comment créer l’apparence d’un linklabel ?
 Propriétés :
− BackColor : couleur d'arrière-plan. BorderStyle : type de bordure du linklabel.
− Font : police du texte affiché par le contrôle.
− Text : texte dans le linklabel. TextAlign : alignement du texte dans le linklabel.
− Padding : espacement, en pixels, entre les bords d'un linklabel et son contenu.
− ImageList : contient les images à afficher dans le linklabel. Pour que l’image s’affiche,
il faut aussi fixer la propriété ImageIndex ou ImageKey (en liaison avec l’imagelist).
− Image : image affichée dans le linklabel. ImageAlign : façon dont l’image est affichée.
− ImageIndex : indice de l’image, ImageKey : nom de l’image (dans l’imagelist associé).

10.1.2- L’utilisation d’un linklabel


Comment faire fonctionner un linklabel ?
 Propriétés :
− LinkArea : intervalle dans le texte à traiter comme un lien hypertexte.
− Links : collection de liens hypertexte contenus dans le linklabel : plusieurs liens
hypertexte peuvent être définis dans le texte du contrôle. Un membre de cette classe :
⋅ Méthode Add(int32,int32,URL) : ajoute une URL à la collection avec le
LinkArea défini en premier.
− DisabledLinkColor : couleur utilisée pour afficher un lien désactivé.
− ActiveLinkColor : couleur utilisée pour afficher un lien actif.
− LinkColor : couleur utilisée pour afficher un lien normal.
− VisitedLinkColor : couleur utilisée pour afficher un lien précédemment visité.
− LinkVisited : valeur indiquant si un lien doit être affiché comme s'il avait été visité.
− LinkBehavior : valeur qui représente le comportement d'un lien. Valeurs possibles :
AlwaysUnderline le lien s'affiche toujours avec le texte souligné.
HoverUnderline le texte est souligné lorsque la souris pointe sur le texte du lien.
NeverUnderline le texte du lien n'est jamais souligné.
SystemDefault voir paramètres de la boîte de dialogue Options Internet d'IE.
 Evènements :
− LinkClicked : l’utilisateur clique sur un lien hypertexte dans le linklabel. Le paramètre
LinkLabelLinkClickedEventArgs, du gestionnaire d'événements, permet d’obtenir le
lien hypertexte sur lequel l'utilisateur a cliqué (propriété Link→LinkData du paramètre).

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 99


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 100/103

10.2- Le composant WEBBROWSER

 MEMBRES DE LA CLASSE WEBBROWSER (espace de noms System::Windows::Forms) :


http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.webbrowser_members(VS.80).aspx

La classe WebBrowser permet d'afficher très facilement des pages html et de naviguer
sur le WEB.
Le webbrowser peut servir à fournir une assistance utilisateur HTML intégrée ou des
fonctionnalités de navigation Web dans l’application développée.

10.2.1- La configuration d’un webbrowser


Comment paramétrer un webbrowser ?
 Propriétés :
− ScrollBarsEnabled : indique si des barres de défilement sont affichées.
 Méthodes :
− Print() : imprime le document en cours avec les paramètres d'impression actuels.
− ShowPageSetupDialog() : ouvre la boîte de dialogue Mise en page d'Internet Explorer.
− ShowPrintDialog() : ouvre la boîte de dialogue Imprimer dans Internet Explorer sans
définir des valeurs d'en-tête et de pied de page.
− ShowPrintPreviewDialog() : ouvre la boîte de dialogue Aperçu avant impression de IE.
− ShowPropertiesDialog() : ouvre la boîte de dialogue Propriétés dans IE.
− ShowSaveAsDialog() : ouvre la boîte de dialogue Enregistrer la page Web dans IE.

10.2.2- La navigation avec un webbrowser


Comment faire fonctionner un webbrowser ?
 Propriétés :
− Url : URL du document par défaut au démarrage.
− AllowNavigation : indique si le webbrowser peut naviguer vers une autre page après le
chargement de sa page initiale.
− AllowWebBrowserDrop : indique si le webbrowser peut naviguer vers des documents
qui sont déposés sur lui.
− ScriptErrorsSuppressed : indique si le webbrowser affiche des boîtes de dialogue
d'erreur.
 Méthodes :
− GoHome() : navigation vers la page de démarrage.
− GoBack() : navigation vers la page précédente.
− GoForward() : avance dans l'historique de navigation.
− Stop() : arrête le chargement de l’URL en cours.
− Refresh() : actualise la page WEB actuelle.
− Navigate(Url) : navigue vers une nouvelle URL. Le paramètre est une référence de
String (String ^). Si la navigation n'aboutit pas, une page indiquant le problème s'affiche.
 Evènements :
− Navigated : le webbrowser a commencé à charger le document HTML.
− DocumentCompleted : le webbrowser a fini de charger la page WEB.
− FileDownload : le webbrowser télécharge un fichier.

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 100


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 101/103

Exemple : NAVIGATION SUR LE WEB AVEC UN LINKLABEL ET UN WEBBROWSER

NAVIGATION WEB A L’ADRESSE URL D’UN LINKLABEL :

// -------------------------------
// définition de l'adresse URL du
linklabel d’intitulé "site WEB MSDN"
// -------------------------------
private: System::Void
Form1_Load(System::Object^ sender,
System::EventArgs^e)
{

// (0,13) correspond à propriété


linkArea
llblMSDN->Links-> Add(0,
13,"www.msdn.microsoft.com");

// ---------------------------------------------------------------------------
// navigation à l'adresse URL du linklabel dans le WEBBROWSER et dans IE
// ---------------------------------------------------------------------------
private: System::Void llblMSDN_LinkClicked(System::Object^ sender,
System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e)

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 101


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 102/103

{ // récupération de l'adresse URL stockée dans le linklabel


String^ target = dynamic_cast<String ^> (e->Link->LinkData);
txtURL->Text= target; // affichage dans le textbox en haut à droite
// navigation en lançant l'explorateur Windows (à gauche)
System::Diagnostics::Process::Start(target);
// navigation dans le WEBBROWSER dans l’application
webMSDN->Navigate( target); }

NAVIGATION WEB DANS INTERNET EXPLORER OU DANS LE WEBBROWSER :

// ------------------
// mise à jour de
l'URL dans la boîte
d'édition (en haut à
droite) lors de la
navigation dans le
WEBBROWSER
// ------------------
private: System::Void
webBrowser1_Navigated(
System::Object^sender,
System::Windows::Forms
::WebBrowserNavigatedE
ventArgs^ e)
{

txtURL->Text =
webMSDN->Url->
ToString();

// --------------------------------------------------------
// navigation à l'adresse URL par défaut dans le WEBBROWSER
// --------------------------------------------------------
private:System::Void btnHome_Click(System::Object^sender,System::EventArgs^ e)
{ webMSDN->GoHome(); }
// --------------------------------------------------------
// navigation à l'adresse URL précédente dans le WEBBROWSER
// --------------------------------------------------------
private: System::Void btnPrec_Click(System::Object^sender,System::EventArgs^e)
{ webMSDN->GoBack(); }
// -------------------------------------------------------------------------
// navigation à l'URL tapée dans la textbox du haut si appui sur ENTREE
// -------------------------------------------------------------------------
private: System::Void txtURL_KeyPress(System::Object^ sender,
System::Windows::Forms::KeyPressEventArgs^ e)
{ if (e->KeyChar== (char)13) // si la touche ENTREE a été actionnée
// navigation dans le WEBBROWSER à l'URL donnée dans la boîte d'édition
webMSDN->Navigate( txtURL->Text); }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 102


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 103/103

11- Des composants non visuels

11.1- Le composant TIMER


 MEMBRES DE LA CLASSE TIMER (espace de noms System::Windows::Forms) :
http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.timer_members(VS.80).aspx
La classe Timer permet d'exécuter une fonction à intervalle de temps régulier.
Le timer est un composant visible en mode conception, mais invisible en mode
exécution de l’application.

11.1.1- La configuration d’un timer


Comment paramétrer un timer ?
 Propriétés :
− Interval : intervalle de temps en milli-secondes entre deux exécutions du timer.

11.1.2- L’utilisation d’un timer


Comment faire fonctionner un timer ?
 Propriétés :
− Enabled : timer lancé ou arrêté.
 Méthodes :
− Start() : démarre le timer.
− Stop() : arrête le timer.
 Evènements :
− Tick : permet d’exécuter le gestionnaire d’évènements du timer toutes les Interval milli-
secondes. La fonction est exécutée si l'application n'est pas bloquée à faire autre chose et
peut recevoir la notification du Timer.

Exemple : AFFICHAGE DE L’HEURE TOUTES LES SECONDES

CONFIGURATION DU TIMER DANS LE CODE :

// ---------------------------------------
// Lancement du timer (période d'1 seconde)
// ---------------------------------------
private: System::Void Form1_Load (
System::Object^sender, System::EventArgs^e)
{ timHeure->Interval = 1000;
timHeure->Start();
}

EXECUTION DU TIMER A INTERVALLE DE TEMPS REGULIER :


// ----------------------------------------
// Affichage de l'heure toutes les secondes
// ----------------------------------------
private: System::Void timHeure_Tick(System::Object^sender,System::EventArgs^e)
{ txtHeure->Text = Convert::ToString(System::DateTime::Now); }

D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I. 103


Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03

Vous aimerez peut-être aussi