Vous êtes sur la page 1sur 6

Info-Sup

C#
tp 0 Octobre 2013

Epita

Windows Forms
1

Introduction

1.1

Objectifs

Durant ce TP, vous allez dcouvrir un nouveau langage, le C#. Vous serez confronts une
nouvelle faon de coder, avec un nouveau langage, sous un nouvel environnement. Le but ntant
pas de vous perdre tout de suite, nous allons intgrer diffrentes fonctionnalits lies au C# et
Visual Studio afin de vous guider vers le bon chemin.
Cette semaine nous allons utiliser les WinForms, qui permettent de raliser des interfaces graphiques, et ce de faon simple et efficace. Pour se fixer un objectif concret, vous devrez raliser
un pendu avec un affichage dimages, compteurs et rcupration de texte, etc.

1.2

Le C#

Le C# prononc Ci Sharp est un langage de programmation orient objet, cr par la


socit Microsoft, et notamment par un de ses employs, Anders Hejlsberg, le crateur du
langage Delphi.
Il a t cr afin que la plate-forme Microsoft .NET soit dote dun langage permettant dutiliser toutes ses capacits. Il est trs proche du Java dont il reprend la syntaxe gnrale, ainsi quau
niveau des concepts la syntaxe reste cependant relativement semblable celle de langages tels
que le C++ et le C.
Contrairement au Caml qui est fonctionnel et avec typage infr, le C# est un language impratif et son typage nest pas infr. Vous devrez donc spcifier le type choisi pour chacune des
variables cres. Des rgles basiques seront prcises plus tard.

1.3

Visual Studio

Microsoft Visual Studio est une suite de logiciels de dveloppement pour Windows conu
par Microsoft. Il sagit dun ensemble complet doutils de dveloppement permettant de gnrer
des applications. Ils permettent de dvelopper des applications dans divers langages sappuyant
sur .NET tels que C# , F#, Visual C++ et Visual Basic. Il est possible de dvelopper des types
dapplications trs varis : applications graphiques, en console, des bibliothques de classes, des
services Windows ou encore des sites web, le tout grce lenvironnement de dveloppement
intgr IDE Integrated Development Environment.
Les tudiants dEpita peuvent tlcharger gratuitement Visual Studio en allant sur le site
Microsoft DreamSpark for Academic Institutions 1 ou en tlchargeant la version express gratuite
sur le site Microsoft.

1. https://www.dreamspark.com/Institution/Access.aspx : Rechercher Epita.

Info-Sup

C#
tp 0 Octobre 2013

Epita

Rendu
Le TP devra tre rendu en ralisant une archive zip.

2.1

Fichier AUTHORS

Ce fichier contient votre login, sous la forme suivante : une toile *, un espace, votre login
(login_x) et un retour la ligne reprsent par le caractre $ dans lexemple ci-dessous.
* login_x$

2.2

Arborescence de larchive zip

rendu-tp0-login_x.zip
| login_x/
| AUTHORS
| HelloWorld/
| HelloWorld/
| HelloWorld.sln
| ImageViewer/
| ImageViewer/
| ImageViewer.sln
| HangedGame
| HangedGame/
| HangedGame.sln

Les bases du langage C#

Le C# comporte des mcanismes de programmation diffrents du Caml. Ces mcanismes seront


abords au fur et mesure des TP. Ce premier TP ne ncessite pas beaucoup de programmation,
il consiste dcouvrir Visual Studio et la cration de fentres.
La documentation du langage C# se trouve sur MSDN :
http://msdn.microsoft.com/fr-fr/library/67ef8sbd.aspx

3.1

Notions de base

Commentaires : Pour commenter une ligne en utilisez un double slash //. Pour former
un bloc de commentaire, utilisez /* Mon commentaire. */.
Bloc : Un bloc est form par deux accolades { }. Un bloc contient zro ou plusieurs
instructions. Un bloc peut contenir des bloc imbriqus.
Instruction : Les actions effectues par un programme sont exprimes dans des instructions. Une instruction peut tre constitue dune ligne de code qui se termine par un
point-virgule ;, ou dune srie dinstructions sur une ligne dans un autre bloc. Exemples
dinstructions :
dclaration de variables ;
attribution de valeurs ;
appel de mthodes ;
excution de boucles ;
branchement un autre bloc de code en fonction dune condition donne.

Info-Sup

C#
tp 0 Octobre 2013

Epita

Expression : Une instruction est une suite dun ou plusieurs oprandes ou plusieurs
oprateurs qui permettent de calculer une valeur.
Oprateurs : Les oprateurs arithmtiques ne sont pas typs comme le Caml : + - *
/, i-e on faire des calculs entre un nombre entier et un flottant. Il existe de nombreux
oprateurs en C#, un autre qui sera utile pour ce TP est le point . qui permet daccder
un membre lors des manipulations dobjets par exemple.
Types : Le C# dfinit les types suivants : int, float, double, char, string, objects,
etc.
Fonction : Le prototype dune fonction est compos du type de retour, nom de la fonction,
et dventuels paramtres avec leur type entre parenthses.
Exemple : fonction factorielle
La fonction factorielle rcursive en C# peut scrire de la faon suivante :
Code source
1
2
3
4
5
6
7

int fact(int i)
{
if (i <= 1)
return 1;
else
return i * fact(i - 1);
}

Remarquez que les accolades de bloc pour le if et else ne sont pas obligatoires si le bloc
contient une seule instruction.

3.2

Cration dun nouveau projet Windows Forms

Lancez Visual Studio si besoin prcisez C# au lancement.


Cliquez sur Fichier, Nouveau et Projet. . .
Slectionnez Application Windows Forms
LIDE 2 Visual Studio est votre outils de dveloppement. Nhsitez pas le personnaliser pour
le rendre confortable. Pour lancer lexcution dun projet, appuyez sur la touche F5. Noubliez
pas dindenter votre code, le raccourci suivant permet de le faire : Ctrl + K + Ctrl + D.
Lexplorateur de solutions situ sur le bord droit de lIDE permet dafficher une vue
densemble du projet. Il contient :
Solution WindowsFormsApplication (1 projet)
WindowsFormsApplication : lapplication.
Properties : Ressources du projet.
Rfrences : Bibliothques utilises dans lapplication.
Form1.cs : Contient votre code et affiche lditeur graphique.
Form.Designer.cs : code gnr par lditeur graphique.
Form1.resx : Contient votre code.
Program.cs : Point dentre du programme.
2. Integrated Development Environment

Info-Sup

C#
tp 0 Octobre 2013

3.3

Epita

Windows Forms

Les Windows Forms permettent de crer des interfaces graphiques sous Windows assez simplement. Visual Studio fournit une bote outils o on trouve la liste des WinForms disponibles.
Pour les utiliser, il suffit deffectuer un simple glisser-dposer.
Lorsquun Form est slectionn, on peut le paramtrer dans la fentre proprits de VS o se
trouve diffrents champs du WinForm. partir de l, on peut le personnaliser taille, couleur,
position, contenu, etc.
Dans la fentre proprits se trouve galement un onglet clair. On peut alors paramtrer
diverses actions de lutilisateur clic de souris, appui sur une touche du clavier, etc. En effectuant
un double-clique sur le champ Click, on se retrouve dans une fentre ddition de code. Une
mthode a t automatiquement cre par VS. Cette mthode permet de crer un callback pour
dfinir le comportement de lapplication pour une action utilisateur donne. Le code source dans
la fentre ddition contient les diffrentes mthodes de la fentre Form.

Exercice 1 : HelloWorld
Dans les exercices qui vont suivre, vous profitez dune libert de cration. Exprimentez !

4.1

Manipulations

Vous devez commencer par crer un nouveau projet Windows Forms qui prendra le nom de
lexercice : HelloWorld. Crez une interface graphique qui contiendra au moins les lments
suivants :
Un Button button_say qui contient le texte Say.
Modifiez le nom du bouton (Name) dans les properties.
Modifiez le contenu du champ Text dans les properties.
Un Label label_say qui ne contient pas de texte.
Modifiez le nom de ltiquette (Name) dans les properties.
Supprimez le texte du champ Text dans les properties.
Linterface graphique a t conue et paramtre. Il faut maintenant la faire fonctionner en
crant des connexions entre les WinForms. Double-cliquez sur le bouton button_say de linterface
graphique ou dans longlet reprsent par un clair et double-cliquez sur laction Click. Lditeur
de code saffiche. Assignez le texte du label label_say :
1
2
3
4

Code source
private void button_say_Click(object sender, EventArgs e)
{
label_say.Text = "Hello World !";
}

Appuyez sur F5 pour lancer lapplication avec le dbuggeur.

4.2

Amliorez

Libert de cration dans cette partie.


Dites bonjour en plusieurs langues en utilisant une ComboBox.

Info-Sup

C#
tp 0 Octobre 2013

Epita

Rcuprez le nom de la personne qui vous dites bonjour en utilisant une TextBox.
Dites bonjour en couleur en ajoutant un Button et la bote de dialogue ColorDialog.

Exercice 2 : ImageViewer

5.1

Manipulations

Le but de cet exercice est de raliser un lecteur dimage. Linterface graphique devra comporter les lments suivants :
Un Button : button_open avec le texte Open.
Une PictureBox : pictureBox_viewer
Une bote de dialogue OpenFileDialog : dialog_open
Affecter laction de button_open :
1
2
3
4
5
6

Code source
private void button_open_Click(object sender, EventArgs e)
{
dialog_open.ShowDialog();
Image img = Image.FromFile(dialog_open.FileName);
pictureBox_viewer.Image = img;
}

5.2

Amliorez

Libert de cration dans cette partie.


Permettre au lecteur dimage dafficher des images haute rsolution en effectuant un redimensionnement.
Afficher le nom de limage et ses caractristiques hauteur, largeur, format de fichier en
rcuprant lextension, etc.
Habiller linterface graphique avec des couleurs.

Exercice 3 : HangedGame

Maintenant que vous avez quelques bases en C# sous Visual Studio, vous allez enfin pouvoir
mettre en pratique pour un vrai petit projet. On va tout dabord rappeler tout ce qui a t vu
pour le moment. Vous savez utiliser des boutons, des textbox, afficher des images, etc. On
va donc rutiliser ces connaissances pour faire le jeu du pendu.

6.1

Linterface

Des lments obligatoires sont intgrer dans cette interface :


3 button s :
Nouvelle partie
Fin de partie
Valider
Une TextBox pour rcuprer la lettre propose par lutilisateur.
Une RichTextBox pour afficher le mot avec les lettres trouves.

Info-Sup

C#
tp 0 Octobre 2013

Epita

Une ProgressBar pour lavancement de la dcouverte du mot.


Une PictureBox pour voir notre pendu.
Un Label pour montrer le nombre restant de coups.
Vous pouvez donc, avec tout ces lments crer un jeu du pendu respectable. La suite dimages
est disponible en suivant ce lien : http://perso.epita.fr/~acdc/

6.2

But du jeu

Vous connaissez tous le jeu du pendu, mais voici quelques explications sur la procdure
suivre pour sa conception :
Nouvelle partie :
ProgressBar remise 0.
Nombres dessais mis 7. - par exemple Image de base.
RichTextBox nettoye.
Bouton Nouvelle Partie gris.
Boutons Fin de partie et Valider activs.
Bouton Valider cliqu :
Si la lettre est prsente dans le mot, lajouter la RichTextBox et augmenter la
ProgressBar de 1.
Sinon le nombre de tests restants diminue et limage suivante est affiche.
La partie est perdue si le nombre dessais arrive 0.
On peut stopper la partie en cours avec le bouton Fin de partie.

6.3

Boni

Vous tes totalement libres sur cette partie, si vous laissez les parties obligatoires prsentes
lors du rendu.
Quelques exemples :
Ajout dun historique des essais dans une ListBox.
1
2
3
4

Code source
// Permet dajouter str dans la liste.
MyList.Items.Add(str);
// Permet deffacer la liste.
MyList.Items.Clear();

Ajout dun dictionnaire avec un certain nombre de mots. La selection du mot se fait
alatoirement. Il faut se renseigner sur lutilisation dun tableau ajout, accs.