, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 1/103
1 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 2/103
2 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 3/103
3 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 4/103
4 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 5/103
5 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 6/103
6 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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/frlrfsystemwindowsformsformmemberstopic.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 :
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 7/103
7 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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 ;
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 8/103
8 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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é.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 9/103
9 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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..");
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 10/103
10 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 11/103
11 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 12/103
12 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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;
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 13/103
13 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
// 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) ; }
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 14/103
14 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 15/103
15 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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)
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 16/103
16 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
{ // 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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 17/103
17 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 18/103
18 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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() + ")";
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 19/103
19 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 20/103
20 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 21/103
21 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 22/103
22 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 23/103
23 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 24/103
24 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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;
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 25/103
25 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 26/103
26 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 27/103
27 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 28/103
28 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
// 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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 29/103
29 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 30/103
30 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 31/103
31 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 32/103
32 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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(); }
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 33/103
33 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 34/103
34 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 35/103
35 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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é");
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 36/103
36 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 37/103
37 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 38/103
38 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 39/103
39 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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 :
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 40/103
40 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 41/103
41 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 42/103
42 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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(); }
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 43/103
43 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 44/103
44 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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";
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 45/103
45 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 46/103
46 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 47/103
47 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 48/103
48 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 49/103
49 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 50/103
50 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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");
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 51/103
51 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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");
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 52/103
52 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 53/103
53 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 54/103
54 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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");
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 55/103
55 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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 :
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 56/103
56 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 57/103
57 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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é.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 58/103
58 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 59/103
59 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 60/103
60 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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 :
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 61/103
61 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 62/103
62 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 63/103
63 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 64/103
64 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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();
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 65/103
65 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 66/103
66 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 67/103
67 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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é. 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
statusstrip. Cette classe possède différents membres (http://msdn.microsoft.com/fr-fr/library/system.windows.forms.toolstripdropdownbutton_members(VS.80).aspx) : 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 :
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 68/103
68 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 69/103
69 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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 }
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 70/103
70 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 71/103
71 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 72/103
72 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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();
}
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 73/103
73 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 74/103
74 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
}
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 75/103
75 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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();
}
}
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 76/103
76 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
}
}
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 77/103
77 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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();
}}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 78/103
78 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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;
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 79/103
79 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
// --------------------------
// 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);
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 80/103
80 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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;
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 81/103
81 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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;
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 82/103
82 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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());
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 83/103
83 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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 ;
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 84/103
84 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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).
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 85/103
85 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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") ;
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 86/103
86 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 87/103
87 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
− 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).aspx
− 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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 88/103
88 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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_members(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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 89/103
89 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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();
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 90/103
90 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
// ------------------------------------------
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 91/103
91 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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 }
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 92/103
92 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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é.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 93/103
93 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 94/103
94 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 95/103
95 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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; }
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 96/103
96 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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();
}
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 97/103
97 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 98/103
98 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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];
}
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 99/103
99 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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).
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 100/103
100 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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.
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 101/103
101 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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)
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 102/103
102 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
{ // 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); }
, Module AAInfo : Développement d’Interfaces Windows Année 2007-2008 (FI) 103/103
103 D. Garric, I.U.T de Sénart-Fontainebleau, Dpt G.E.I.I.
Av. Pierre Point, 77 127 Lieusaint : 01.64.13.44.85 : 01.64.13.45.03
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); }
Top Related