Vous êtes sur la page 1sur 10

Dmarrer avec les Winforms (partie 2)

1 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

Forums Tutoriels Magazine FAQs Blogs Chat Newsletter tudes Emploi Club
Contacts

Accueil

ALM

Java

.NET

Programmation

Dv. Web

EDI

Algorithmique

Forums C++

FAQ C++

Programmation

2D-3D-Jeux
Tutoriels C++

SGBD

Assembleur
Livres C++

Office
C++

Solutions d'entreprise
Go

Objective C

Outils & compilateurs C++

Pascal

Bibliothques C++

Applications
Perl

Python

Sources C++

Mobiles
Swift

Systmes
Qt

XML

Autres

Qt

Dmarrer avec les Winforms (partie 2) en C++/CLI avec Visual Studio 2005
Table des matires
1.Introduction
2.Les menus
2.1.Le menu de la fentre
2.2.Le menu contextuel
3.Le contrle NotifyIcon
4.Le contrle ToolTip
4.Le contrle ToolStrip
5.Les boites de dialogues standards
5.1.La boite de slection d'un rpertoire
5.2.Les boites d'ouvertures et de
sauvegardes de fichiers
5.3.Les autres boites de dialogues
6.Les Timers
7.Les ImageList
8.Les tabControl
9.Les splitContainer
10.Les StatusStrip
11.Implmenter un drag and drop
4.Conclusion
Remerciements
Contact
A travers ce tutoriel, vous trouverez la suite de l'introduction la programmation des Winforms grce au framework .net 2.0 travers l'utilisation
du langage C++/CLI avec Visual C++ 2005. Vous y dcouvrirez l'utilisation de certains contrles des Winforms.
Article lu 5188 fois.
L'auteur
Nico-pyright(c)
L'article
Publi le 12 juin 2006

1.Introduction

ePub, Azw et Mobi


Liens sociaux
Partager

Vous tes un dveloppeur, vous avez des bases dans le langage C/C++ et vous
souhaitez acqurir des connaissances en programmation Windows dans le domaine
du dveloppement d'interfaces homme machine en .Net grce au framework 2.0 et le
C++/CLI ?
Alors ce tutoriel est pour vous.
Vous trouverez dans ce cours la suite de l'introduction la programmation des
Winforms (Windows Forms). Je vous invite consulter le tutoriel Dmarrer avec les
winforms en prambule.
Je vais vous prsenter dans ce tutoriel certains contrles en rentrant un peu plus
dans les dtails.
A travers ce tutoriel, j'utiliserai le logiciel Visual Studio 2005 de Microsoft et plus
particulirement Visual C++ 2005 ainsi que le framework dotnet 2.0.
2.Les menus

2.1.Le menu de la fentre


Pour crer un menu, rien de plus simple : faites glisser le composant Menustrip
dans la fentre.
Vous pouvez constater qu'une barre s'est ajoute, dans laquelle vous allez pouvoir
crire directement le nom de vos menus.

26/10/2015 10:27

Dmarrer avec les Winforms (partie 2)

2 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

Remplissez le contenu comme il vous convient.


Il est possible d'associer une image un menu : dans l'diteur de la proprit Items,
il suffit simplement de renseigner la proprit Image.

Notez que ce qui est applicable pour un menu l'est aussi pou un sous-menu. Pour y
accder, il faut alors rentrer dans l'diteur de proprits de DropDownItems.
Pour tre averti d'un click sur le menu, il faut intercepter l'vnement ItemClicked.
Pour intercepter un click sur un sous-menu, il faut intercepter de la mme faon
l'vnement DropDownItemClicked, ces vnements devant tre intercepts pour
chaque composant MenuStrip et ToolStripMenuItem qui composent le menu. Ceci
implique donc d'avoir une fonction qui intercepte l'vnement par lment
intercepter.
Remarque : Il est possible d'utiliser une seule fonction pour intercepter tous les
vnements dans la mesure o le prototype de la fonction est le mme chaque fois.
Il faut dans ce cas modifier par code chaque ajout de handler pour tous les objets
composants le menus. On s'en rfre l'objet ToolStripItemClickedEventArgs et
la proprit ClickedItem pour identifier sur quel lment on a cliqu.
Un menu dispose des proprits Checked et RadioCheck qui permettent de cocher
un lment de menu.
On peut galer associer facilement un raccourci grce la proprit Shortcut ;
celui-ci pouvant tre affich ou non grce la proprit ShowShortCut.

L'ajout d'un shortcut par code se fait ainsi (ici Control + B) :

Slectionnez
menuItem->ShortcutKeys = static_cast<Keys>(Keys::Control | Keys::B);

On peut noter une proprit intressante : LayoutStyle, qui permet par exemple
d'orienter le menu verticalement.

2.2.Le menu contextuel

26/10/2015 10:27

Dmarrer avec les Winforms (partie 2)

3 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

Je vais vous montrer dans ce paragraphe comment crer un menu contextuel par
code.
On utilise les classes ContextMenu et MenuItem.
On va faire un menu contextuel contenant deux lments (ouvrir et supprimer), on
l'affichera lors du clic droit sur un listview par exemple.
On dclare trois variables, un ContextMenu, et deux MenuItem :

Slectionnez
ContextMenu ^ monMenu;
MenuItem ^ eltOuvrir;
MenuItem ^ eltSupprimer;

Dans le constructeur de la form, on initialise le menu et on dclare les deux fonctions


qui vont permettre de rceptionner les clicks sur les lments du menu :

Slectionnez
monMenu = gcnew System::Windows::Forms::ContextMenu();
eltOuvrir = gcnew MenuItem("Ouvrir");
eltOuvrir->Click += gcnew EventHandler(this, &Form1::OnMenuOuvrir);
eltSupprimer = gcnew MenuItem("Supprimer");
eltSupprimer->Click += gcnew EventHandler(this, &Form1::OnMenuSupprimer);
...
private: System::Void OnMenuOuvrir(Object ^sender, EventArgs ^e)
{
MessageBox::Show("Ouverture");
}
private: System::Void OnMenuSupprimer(Object ^sender, EventArgs ^e)
{
MessageBox::Show("Suppression");
}

On peut alors afficher le menu :

Slectionnez
if (e->Button == System::Windows::Forms::MouseButtons::Right)
{
monMenu->MenuItems->AddRange(gcnew array<MenuItem ^> {eltOuvrir, eltSupprimer
monMenu->Show(listView1, e->Location);
}

3.Le contrle NotifyIcon


Il s'agit d'un contrle trs connu, plus ou moins lis au contrle menu. Ce contrle
sert avoir une icne dans la barre des taches (gnralement utilise pour rduire
l'application), de pouvoir agir dessus par un menu contextuel, ou d'obtenir une
information grce une bulle.

Son utilisation est trs aise. Ajoutez un contrle NotifyIcon sur votre form. Dans les
proprits du contrle, renseignez la proprit Icon qui correspondra l'icne que
nous verrons affiche dans la barre des taches.
Et pour afficher une bulle comme ci-dessus, il suffit d'appeler la mthode
ShowBalloonTip :

Slectionnez
notifyIcon1->ShowBalloonTip(2000, "titre", "text", ToolTipIcon::Info);

Le dernier paramtre correspond l'icne qui sera affiche dans la bulle. On la trouve
dans une numration qui contient entres autres : Error, Info, None et Warning.
On peut ensuite ajouter trs facilement un menu contextuel qui s'affichera
automatiquement lors d'un click droit sur l'icne dans la barre des taches.
Pour ce faire, il suffit de dposer sur la form un contrle ContextMenuStrip. Un
menu apparat sur la form que l'on peut soit remplir directement, soit depuis la
fentre de proprits.

26/10/2015 10:27

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

Dmarrer avec les Winforms (partie 2)

4 sur 10

Il ne reste plus qu' implmenter l'vnement ItemClicked et diffrencier nos


lments de menu, comme ceci par exemple :

Slectionnez
private: System::Void contextMenuStrip1_ItemClicked(System::Object^ sender,
System::Windows::Forms::ToolStripItemClickedEventArgs^ e)
{
if (e->ClickedItem->Text == "Ouvrir")
MessageBox::Show("Ouvrir");
else
MessageBox::Show("Quitter");
}

Remarque : Toutes les proprits classiques d'un ContextMenuStrip sont applicables,


comme par exemple la possibilit de mettre des images dans le menu.
4.Le contrle ToolTip
Le contrle ToolTip correspond la bulle d'aide bien connue que l'on peut apercevoir
sur un bouton par exemple lorsque l'on laisse le curseur de la souris immobile dessus
pendant 1 2 secondes.
Il s'utilise ici encore trs facilement. Imaginons que je veuille avoir une bulle d'aide
sur un bouton. En dposant un contrle ToolTip sur la form, il s'ajoute
automatiquement une proprit supplmentaire mon bouton dans la fentre des
proprits.
Elle s'appelle ToolTip on toolTip1, toolTip1 tant le nom par dfaut de mon contrle
ToolTip dpos.

On renseigne dans cette proprit le texte que l'on souhaite voir affich, et le tour est
jou.

Ici, la photo d'cran ne prend pas le curseur de la souris, il est bien sr positionn sur
le bouton.
Une autre mthode pour implmenter une bulle d'aide est d'intercepter l'vnement
MouseHover du bouton, et d'utiliser la mthode Show d'un objet ToolTip. Cette
mthode prend le texte en paramtre ainsi que le contrle sur lequel va se mettre la
bulle d'aide.

Slectionnez
monToolTip->Show("Le message en question", this->button1);

4.Le contrle ToolStrip


Voici encore un contrle trs facile utiliser grce l'IDE Visual Studio 2005. On peut

26/10/2015 10:27

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

Dmarrer avec les Winforms (partie 2)

5 sur 10

grce celui-ci crer une barre d'outils entirement personnalisable, avec des
boutons (avec image), du texte, des zones de saisies, des combo box, des menus, et
j'en passe ... En termes d'objets, ces contrles sont des ToolStripButton, des
ToolStripLabels, etc ...
Tout ce que vous avez faire, est de dposer le contrle ToolStrip sur la form et
personnaliser votre barre directement sur la form, comme ci-dessous :

Evidement, on peut associer des vnements chacun des contrles ajouts grce
l'IDE, comme l'vnement Click, ou TextChanged pour un contrle ditable.
Encore une fois, l'IDE nous fournit une aide considrable pour crer ce genre de
composant qui s'avreraient plus laborieux crer dynamiquement.
Pour crer une barre d'outils dynamiquement, il faut dj crer les contrles un par
un.

Slectionnez
myToolStripComboBox->Items->AddRange(
gcnew cli::array< System::Object^ >(3) {"Elt 1", "Elt 2", "elt 3"});
myToolStripComboBox->toolStripComboBox1->Name = "Ma Combo";
myToolStripComboBox->toolStripComboBox1->Size = System::Drawing::Size

Puis utiliser la mthode AddRange (ou Add) de l'objet ToolStrip pour ajouter les
contrles.

Slectionnez
monToolStrip->Items->AddRange(
gcnew cli::array< System::Windows::Forms::ToolStripItem^
{monToolStripButton, monToolStripLabel});

>(2)

5.Les boites de dialogues standards

5.1.La boite de slection d'un rpertoire


On utilise le contrle FolderBrowserDialog pour faire une slection d'un rpertoire.
On peut lui faire choisir un emplacement racine avec la proprit RootFolder et
rcuprer le rpertoire slectionn avec SelectedPath.
On peut aussi optionnellement permettre la cration de rpertoire avec la proprit
boolenne ShowNewFolderButton.

Slectionnez
folderBrowserDialog1->Description = "Choisissez le rpertoire";
folderBrowserDialog1->ShowNewFolderButton = true;
folderBrowserDialog1->RootFolder = Environment::SpecialFolder::Desktop;
folderBrowserDialog1->ShowDialog();
if (folderBrowserDialog1->SelectedPath != String::Empty)
MessageBox::Show("Rpertoire slectionn : " + folderBrowserDialog1->SelectedPath);

5.2.Les boites d'ouvertures et de sauvegardes de


fichiers
Les contrles OpenFileDialog et SaveFileDialog fonctionnent grosso-modo de la
mme faon. Ils permettent respectivement l'ouverture d'un boite de dialogue pour
effectuer la lecture ou l'criture d'un fichier.
On peut bien sur dfinir une extension par dfaut avec la proprit DefaultExt ainsi
qu'un filtre sur une ou plusieurs extensions avec la proprit Filter.
Il existe aussi quelques proprits intressante qui permette l'apparition d'un warning
si par exemple le fichier ou le rpertoire n'existe pas, avec CheckFileExists ou
CheckPathExists. On peut aussi autoriser la slection multiple avec Multiselect.

Slectionnez
openFileDialog1->Title = "Slectionnez un fichier";
openFileDialog1->FileName = nullptr;
openFileDialog1->DefaultExt = "txt";
openFileDialog1->Filter = "Fichiers Texte (*.txt)|*.txt|Tous (*.*)|*.*";

26/10/2015 10:27

Dmarrer avec les Winforms (partie 2)

6 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

openFileDialog1->CheckFileExists = true;
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
Stream ^s = openFileDialog1->OpenFile();
// ...
}

Remarque : Ici, la fonction OpenFile utilise le fichier slectionn dans la proprit


FileName. De mme, cette proprit a t initialise nullptr pour ne pas avoir de
nom prdfini dans la boite de dialogue.

5.3.Les autres boites de dialogues


Sans rentrer dans les dtails, on peut citer :
la boite de dialogue PrintDialog qui permet d'ouvrir la boite d'impression.
la boite de dialogue ColorDialog qui permet d'ouvrir une boite de slection de
couleur.
la boite de dialogue FontDialog qui permet d'ouvrir une boite de slection de
fontes.
6.Les Timers
Le contrle Timer est trs pratique. Il permet d'excuter une fonction intervalle de
temps rgulier.
On dfinit un intervalle de temps en milli-secondes grce la proprit Interval, et
on dmarre le Timer avec la mthode Start().
Il suffit alors d'implmenter l'vnement Tick du Timer pour executer la fonction
toutes les x milli-secondes, dfinis dans l'intervalle de temps. A tout moment on peut
arrter le timer grce la mthode Stop().
Cet exemple nous permet de mettre jour un textbox avec l'heure toutes les
secondes.

Slectionnez
private: System::Void Form1_Load(System::Object^
{
timer1->Interval = 1000;
timer1->Start();
}

sender, System::EventArgs^

e)

private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^


{
textBox1->Text = Convert::ToString(System::DateTime::Now);
}

e)

Remarque : La fonction est excute uniquement si l'application n'est pas bloque


faire autre chose et peut recevoir la notification du Timer. Si ce n'est pas le cas,
l'vnement sera diffr jusqu' ce que le programme reprenne la main et puisse
traiter l'vnement Timer. (Ce qui veut dire que la fonction n'est pas excute dans
un thread indpendant).
7.Les ImageList
Un contrle ImageList est utilis pour stocker des images. Son intrt, par rapport
stocker directement le fichier en ressources, est sa facilit d'utilisation ainsi que son
intgration avec d'autres contrles (ListView, TreeView, Toolbar, ...).
Dposez un contrle ImageList sur la form et utilisez la proprit Images pour
ajouter des images. N'oubliez pas de renseigner la proprit Name de chaque image
ajoute, afin d'y accder facilement par la suite.
On peut alors accder une image trs facilement, comme cet exemple qui permet
d'afficher l'image dans un pictureBox.

Slectionnez
pictureBox1->Image = imageList1->Images["arbre"];

Comme je le disais, outre cette accessibilit vidente, un autre intrt est son

26/10/2015 10:27

Dmarrer avec les Winforms (partie 2)

7 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

interaction avec d'autres contrles, par exemple le listView.


Je peux lui associer directement dans l'diteur de proprit, par exemple dans la
proprit largeImageList le contrle ImageList que nous avons cr et qui contient
nos images.

Ds lors, je pourrais ajouter un lment dans la proprit Items et associer


directement une image en utilisant la proprit ImageKey ou ImageIndex, comme
ci-dessous :

8.Les tabControl
Le contrle tabControl permet de crer ce que l'on appelle communment des
onglets.
Il s'agit d'un contrle trs simple utiliser. Dposez le contrle sur la form et ajoutez
les contrles directement sur chacune des pages des onglets. On ajoute un onglet
grce la proprit tabPages.
On peut contrler le positionnement des onglets grce la proprit alignment.
Ainsi, il est possible de les positionner en haut, droite, gauche ou en bas.

On peut rajouter un ToolTip sur l'intitul de l'onglet grce la proprit ToolTip. On


peut aussi rajouter une image dans l'onglet en utilisant un contrle ImageList associ
la proprit ImageList. Il suffit alors d'utiliser la proprit ImageIndex ou
ImageKey pour aller rcuprer les images du contrle ImageList.
On utilise l'vnement SelectedIndexChanged pour dtecter un changement
d'onglet, par un clic dessus. On identifie sur quel onglet on se trouve grce l'objet
Sender, que l'on caste en TabControl et en utilisant les proprits SelectedTab et
SelectedIndex :

Slectionnez
private: System::Void tabControl1_SelectedIndexChanged(System::Object^
{

sender, System::

26/10/2015 10:27

Dmarrer avec les Winforms (partie 2)

8 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

TabControl ^tab = safe_cast<TabControl ^>(sender);


MessageBox::Show("Je suis sur l'onglet " + tab->SelectedTab->Text +
"(index : " + Convert::ToString(tab->SelectedIndex) + ")");
}

9.Les splitContainer
On peut utiliser le contrle splitContainer pour crer un splitter, qui permet de
partager une fentre en deux parties redimensionnables.
Sur l'image ci-dessous, on observe 2 splitContainer, le deuxime tant contenu dans
la partie droite du premier.

On constate ici que l'on peut changer l'orientation du splitter. Ceci est faisable grce
la proprit Orientation. J'ai aussi positionn la proprit BorderStyle
Fixed3D. Il existe d'autres styles pour cette proprit (FixedSingle et None). Je
trouve cependant que Fixed3D est le style qui se voit le plus et qui facilite le
redimensionnement.
Il est possible de dfinir l'paisseur de la barre qui sert au redimensionnement grce
la proprit SplitterWidth. Si l'on veut fixer la barre, on utilise alors la proprit
IsSplitterFixed.
Le splitContainer est compos de deux panels. Il s'agit des contrles panels standards
(System::Windows::Forms::Panel) qui se comportent donc de manire standards.
Cela veut dire qu'ils se comportent en tant que container de contrles et donc que
l'on peut ajouter des contrles dedans, comme le button ou le textbox que l'on voit
sur l'image.
On intercepte le redimensionnement d'un splitter grce l'vnement
SplitterMoved. L'argument SplitterEventArgs nous permet d'obtenir des
renseignements sur le redimensionnement. Notamment les attributs X et Y qui nous
permettent de connatre la taille des nouveaux panels.
10.Les StatusStrip
Le contrle StatusStrip reprsente la barre d'tat que l'on peut voir dans certaines
applications. Elle est gnralement ancre dans la partie basse d'une fentre.
De la mme faon que pour le contrle ToolStrip, il est possible de rajouter des
contrles dans la barre. La diffrence ici est que l'on peut ajouter uniquement des
labels, des progressbar, des dropdownbuttons ou des splitbuttons.
On utilise la proprit Dock avec les valeurs Bottom, Left, Right ou Top pour
ancrer la barre respectivement en bas, gauche, droite ou en haut de la fentre.
On utilise la proprit RightToLeft si l'on veut voir commencer s'afficher les
contrles depuis la droite de la barre. On peut galement changer le style de la barre
avec la proprit RenderMode, le style par dfaut tant le style System. Un autre
proprit intressante est la possibilit de choisir l'orientation du texte avec la
proprit TextDirection. Il peut ainsi tre Horizontal, Vertical90 ou Vertical270.
Comme d'autres contrles, il est facile d'associer un menu contextuel grce la
proprit ContextMenuStrip.

11.Implmenter un drag and drop


Je vais vous montrer dans ce paragraphe comment implmenter un drag and drop

26/10/2015 10:27

Dmarrer avec les Winforms (partie 2)

9 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

entre deux contrles PictureBox sur une form, qui va permettre l'change des
contenus des images.
Faites glisser 2 pictureBox et choisissez une image par PictureBox. Autorisez la
rception de donnes "dposes", en mettant true la proprit AllowDrop (ceci ne
pouvant se faire que par code, dans le form_load par exemple).

Slectionnez
pictureBox1->AllowDrop = true;
pictureBox2->AllowDrop = true;

Gnrez les vnements DragDrop, DragEnter et MouseMove.


Dans le mouseMove de l'image source (ici pictureBox1), on envoie l'image en drag
and drop :

Slectionnez
if (e->Button == System::Windows::Forms::MouseButtons::Left)
pictureBox1->DoDragDrop(pictureBox1->Image, DragDropEffects::All );

Dans le DragEnter de l'image destination (ici pictureBox2), on vrifie que ce qui est
envoy est bien une image, dans ce cas, on effectue une copie :

Slectionnez
if (e->Data->GetDataPresent(DataFormats::Bitmap))
e->Effect = DragDropEffects::Copy;
else
e->Effect = DragDropEffects::None;

Enfin, on vient rcuprer l'image envoye dans le dragDrop de l'image destination, et


on intervertit les images :

Slectionnez
if ( e->Data->GetDataPresent(DataFormats::Bitmap))
{
pictureBox1->Image = pictureBox2->Image;
pictureBox2->Image = safe_cast<Image ^>(e->Data->GetData(DataFormats::Bitmap));
}

Il ne reste plus qu' faire la mme chose pour grer le drag and drop de l'image 2
vers l'image 1.
Remarque : Ceci est une mthode applique aux images, en effet, on contrle la
validit de l'envoi avec le type DataFormats::Bitmap.
Il est bien sur possible de faire transiter autre chose que des images entre des
contrles, par exemple du texte. Il suffirait d'utiliser le type DataFormats::Text.
L o cela se corse, c'est lorsqu'on veut faire transiter des objets personnels. Ceci est
quand mme possible en changeant un peu la mthode de reception.
Imaginons que nous voulions envoyer un objet MonObjet.
Il faut commencer par envoyer l'objet en lui mme.(Dans mon exemple, j'ai stock
mon objet MonObjet dans la proprit Tag de la pictureBox. C'est lui que je vais
envoyer).

Slectionnez
private: System::Void PictureMouseMove(System::Object^ sender, MouseEventArgs^
{
if (e->Button == System::Windows::Forms::MouseButtons::Left)
safe_cast<PictureBox ^>(sender)->DoDragDrop(
safe_cast<MonObjet^>(safe_cast<PictureBox ^>
(sender)->Tag), DragDropEffects::All );
}

e)

Ensuite, on ne peut pas tester le format de l'objet envoy, comme c'tait le cas pour
un Bitmap. Une solution consiste parcourir un tableau des formats disponibles et de
le comparer notre objet pass.

Slectionnez
private: System::Void PictureDragEnter(System::Object^ sender, DragEventArgs^
{
array<String ^> ^formats = e->Data->GetFormats();
if (formats->Length >0)
if (formats[0] == "MonObjet")
e->Effect = DragDropEffects::Copy;
else
e->Effect = DragDropEffects::None;
else
e->Effect = DragDropEffects::None;
}

e)

26/10/2015 10:27

Dmarrer avec les Winforms (partie 2)

10 sur 10

http://nico-pyright.developpez.com/tutoriel/vc2005/winforms2/

Enfin, il ne reste plus qu' rcuprer l'objet envoy et ventuellement l'objet


d'origine.

Slectionnez
private: System::Void PictureDragDrop(System::Object^ sender, DragEventArgs^ e)
{
MonObjet ^org = safe_cast<MonObjet^>(safe_cast<PictureBox ^>(sender)->Tag);
MonObjet ^dest = safe_cast<MonObjet^>(e->Data->GetData("MonObjet"));
// ...
}

Pour illustrer cette mthode, j'ai labor un petit jeu trs connu, dont le principe est
de rorganiser une image dont les morceaux se sont mlangs en faisant glisser une
case vide. (Ce jeu s'appelle dans mon tlphone "image magique", mais peut-tre
a-t-il un vrai nom ...). Vous pouvez tlcharger les sources ainsi qu'une version
compile : Tlcharger ici (55 Ko).

4.Conclusion
Voil, travers ce tutoriel vous avez pu dcouvrir un peu plus prcisment certains
contrles des winforms.
Bien sur, je n'ai pas rpertori toutes les proprits de chaque contrle, mais j'espre
vous avoir permis de dmarrer un peu plus sereinement et j'espre vous avoir aussi
donn envie d'aller plus loin dans la dcouverte du monde merveilleux des Winforms.
Remerciements
Je remercie toute l'quipe C++ et Dotnet pour leur relecture attentive du document.
Contact
Si vous constatez une erreur dans le tutorial, dans le source, dans la programmation
ou pour toutes informations, n'hsitez pas me contacter par mail, ou par le forum.

Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre
convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge
par les droits d'auteur. Copyright 2006 Nico-pyright(c). Aucune reproduction, mme
partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents,
images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'
trois ans de prison et jusqu' 300 000 de dommages et intrts.

Responsable bnvole de la rubrique C++ : Francis Walter - Contacter par email


Nous contacter

Participez

Hbergement

Informations lgales

Partenaire : Hbergement Web

Copyright 2000-2015 - www.developpez.com

26/10/2015 10:27