Académique Documents
Professionnel Documents
Culture Documents
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
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.
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.
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 :
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.
1.1.2- Création d’un formulaire (formulaire modal, non modal, MessageBox, application MDI)
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é.
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.
#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)
{
#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 }
// ---------------------------------------------
// opérations à la fermeture de l'application
// ---------------------------------------------
private: System::Void Form1_FormClosed(System::Object^ sender,
System::Windows::Forms::FormClosedEventArgs^ e) {
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.
// -----------------------
// 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();
// 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();
}
// -----------------------------------------
// réaction à un clic sur le panel de gauche
// -----------------------------------------
private: System::Void pnlOutil_Click(System::Object^ sender,
System::EventArgs^ e)
}
}
// -----------------------------------------
// 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);
}
Propriétés :
Des contrôles peuvent être posés directement sur chacune des pages
à onglets.
− 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.
− 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).
// ---------------------
// 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);
// ---------------------------------------------
// réaction à un changement de page sélectionnée
// ---------------------------------------------
private: System::Void tbcAide_SelectedIndexChanged(System::Object^ sender,
System::EventArgs^ e) {
// ------------------------------------------------------------
// 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;
}
Propriétés :
// -------------------------------------------------------------
// 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
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);
}
La classe CheckBox est une case à cocher dérive qui permet de faire un choix
d’options avec le click gauche de la souris.
− 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.
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.
MessageBox::Show(info);
}
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.
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.
La classe RadioButton permet de réaliser des boutons radios, permettant de faire une
sélection unique parmi plusieurs choix.
// -------------------------------------------------------------
// 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);
Propriétés :
− Cursor : curseur qui est affiché lorsque le pointeur de la souris se trouve sur le bouton.
− 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.
− 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
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).
// -------------------------------------------------------------
// 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) {
if (e->ClickedItem->Text ==
"&Fichier")
MessageBox::Show("Fichier");
else if (e->ClickedItem->Text ==
"&Couleurs")
MessageBox::Show("Couleurs");
private: System::Void
rougeToolStripMenuItem_Click(System::Obj
ect^ sender, System::EventArgs^ e)
{ MessageBox::Show("Rouge"); }
// transformation du sender en
élément de menu
ToolStripMenuItem ^ elementMenu=
safe_cast <ToolStripMenuItem ^>
(sender);
else if(elementMenu->Text=="Quitter")
MessageBox::Show("Quitter");
− 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.
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é.
// ---------------------------------------------------------------------------
// 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) {
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");
}
Propriétés :
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.
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é 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é 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.
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.
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.
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.
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.
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) :
// ------------------------------------------------------------------------
// 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();
}
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.
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.
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 }
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);
// -----------------------------
// 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();
}
}
// ---------------------------------------------
// 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
}
}
// ------------------------------------------------
// 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;
// -----------------------------
// 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
}
}
}
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();
}}
Propriétés :
Méthodes :
Evènements :
// --------------------------
// 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);
}
// 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;
}
Propriétés :
Propriétés :
Evènements :
// ----------------------------------
// 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 ;
}
La classe MonthCalendar permet à l'utilisateur de sélectionner une date et une heure à l'aide
d'un affichage visuel.
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).
// -------------------------------
// 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") ;
}
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.
− 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.
− Columns : collection contenant tous les en-têtes de colonne qui apparaissent dans la
listview. Ses membres : http://msdn.microsoft.com/fr-
fr/library/system.windows.forms.listview.columnheadercollection_members(VS.80).asp
x
− Columns[i] : une colonne de la collection Columns (ajouter une colonne dans la
propriété Columnss pour avoir accès aux propriétés de la colonne). Cette classe possède
différents membres :
⋅ Propriété Text : intitulé de la colonne.
⋅ Propriété TextAlign : alignement du titre de colonne (Left, Right, Center).
⋅ Propriété Width : largeur de colonne.
− 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.
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 :
Evènements :
//-----------------------------------
// 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};
// --------------------------------------
// 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
// ------------------------------------------
// ---------------------------------
// 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 }
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.
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 : 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; }
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).
// -----------------------------------------------------
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.
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, ...).
// -------------------------
// 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];
}
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.
// -------------------------------
// définition de l'adresse URL du
linklabel d’intitulé "site WEB MSDN"
// -------------------------------
private: System::Void
Form1_Load(System::Object^ sender,
System::EventArgs^e)
{
// ---------------------------------------------------------------------------
// 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)
// ------------------
// 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); }
// ---------------------------------------
// Lancement du timer (période d'1 seconde)
// ---------------------------------------
private: System::Void Form1_Load (
System::Object^sender, System::EventArgs^e)
{ timHeure->Interval = 1000;
timHeure->Start();
}