Cours Événementielle

45
M.El Kadali Page 1 sur 45 I. T able des matières II. Les déclarations...................................................................................................................... 3 1. Les types............... .................................................................................................................... 3 2. Portée d’une variable................................................................................................................ 3 a. Les variables globales............................................................................................................ 3 b. V ariables gl obales un !or"ulaire......................................................................................... # c. V ariables globales au pro$et................................................................................................... # III. Instruction alternative............................................................................................................ # 3. %ynta&e '................................................................................................................................... # #. I"brication d’instructions alternatives...................................................................................... ( IV . %tructure répétitive................................................................................................................ ) 1. *o"bre de r épétitions connu.................................................................................................... ) d. %tructure !or................. .......................................................................................................... ) e. %tructure !oreac+.................................................................................................................... ) 2. *o"bre de répétitions inconnu................................................................................................. , a. %tructure tant -ue /+ile0...................................................................................................... , b. %tructure r epeter $us-ua do /+ile0....................................................................................... , V . %truc ture de cas..................................................................................................................... VI. Les tableau&....... .................................................................................................................... 1. 4ableau unidi"ensionnel........................................................................................................... 2. 4ableau "ultidi"ensionnel...................................................................................................... 15 3. 4ableau de tableau&................................................................................................................ 15 VII. Les !or"ulair es..................................................................................................................... 15 1. 6pérations courantes.............................................................................................................. 15 2. Les a pplications M7I et %7I..................................................................................................... 11 3. 8ontr9les et co"posants de bo:te de dialogue........................................................................ 11 a. La propriété 7ialogue;esult................................................................................................. 11 b. 6pen<ile7ialog..................................................................................................................... 12 c. %ave< ile7ialog........ .............................................................................................................. 13 d. 8olor7ialog........................................................................................................................... 13 e. <ont7ia log............. ............................................................................................................... 13 ! . Print7ialog............................................................................................................................ 13

Transcript of Cours Événementielle

Page 1: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 1/45

M.El Kadali Page 1 sur 45

I. Table des matières

II. Les déclarations......................................................................................................................3

1. Les types.................................................................................................................................

2. Portée d’une variable...............................................................................................................

a. Les variables globales..........................................................................................................b. Variables globales un !or"ulaire.......................................................................................c. Variables globales au pro$et.................................................................................................

III. Instruction alternative............................................................................................................ #

3. %ynta&e '..................................................................................................................................#. I"brication d’instructions alternatives....................................................................................

IV. %tructure répétitive................................................................................................................ )

1. *o"bre de répétitions connu..................................................................................................

d. %tructure !or..........................................................................................................................e. %tructure !oreac+..................................................................................................................

2. *o"bre de répétitions inconnu...............................................................................................

a. %tructure tant -ue /+ile0.....................................................................................................b. %tructure repeter $us-ua do /+ile0.....................................................................................

V. %tructure de cas.....................................................................................................................VI. Les tableau&...........................................................................................................................

1. 4ableau unidi"ensionnel.........................................................................................................2. 4ableau "ultidi"ensionnel......................................................................................................3. 4ableau de tableau&................................................................................................................

VII. Les !or"ulaires..................................................................................................................... 15

1. 6pérations courantes..............................................................................................................2. Les applications M7I et %7I.....................................................................................................3. 8ontr9les et co"posants de bo:te de dialogue........................................................................

a. La propriété 7ialogue;esult.................................................................................................b. 6pen<ile7ialog.....................................................................................................................c. %ave<ile7ialog......................................................................................................................d. 8olor7ialog...........................................................................................................................e. <ont7ialog............................................................................................................................!. Print7ialog............................................................................................................................

Page 2: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 2/45

M.El Kadali Page 2 sur 45

VIII.=oite outils.........................................................................................................................1#

1. !or".........................................................................................................................................2. List=o&.....................................................................................................................................3. 8+ec>bo&.................................................................................................................................

#. ;adiobutton.............................................................................................................................(. 8o"bo=o&...............................................................................................................................). ListVie/...................................................................................................................................,. Picture=o&................................................................................................................................ data?ridVie/............................................................................................................................ 4reeVie/..................................................................................................................................15........................................................................................................................................... 4i"

................................................................................................................................................11................................................................................................................................. Progress=

................................................................................................................................................12................................................................................................................................... %tatus%t

................................................................................................................................................

13....................................................................................................................................Picture=................................................................................................................................................1#............................................................................................................................ date4i"ePic>

................................................................................................................................................1(............................................................................................................................ Les conteneu

................................................................................................................................................

g. <lo/LayoutPanel...................................................................................................................+. group=o&..............................................................................................................................i. Panel....................................................................................................................................

 $. split8ontainer.......................................................................................................................

1)................................................................................................................................... Les "en................................................................................................................................................

>. Menu%trip.............................................................................................................................l. 8onte&tMenu%trip.................................................................................................................

1,......................................................Instanciation et personnalisation dyna"i-ue des contr9le................................................................................................................................................

a. Instanciation d’un contr9le...................................................................................................b. Personnalisation d’un contr9le.............................................................................................c. Positionne"ent un contr9le..................................................................................................d. @$out d’un contr9le au !or"ulaire........................................................................................

IA. Les événe"ents................................................................................................................... 25

1. 7éBnition.................................................................................................................................2. Evéne"ents courants'.............................................................................................................3. @ssocier une !onction un évCne"ent...................................................................................#. 4p............................................................................................................................................

Page 3: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 3/45

M.El Kadali Page 3 sur 45

(. 7éBnir un nouveau événe"ent...............................................................................................

e. 6b$ets delegate....................................................................................................................!. 7élégué pour lévéne"ent...................................................................................................

A. 8onversions de variables...................................................................................................... 23AI. Instanciation et personnalisation des contr9les '..................................................................2#

1. Instanciation et personnalisation.............................................................................................2. Positionner un contr9le............................................................................................................3. @$out au !or"ulaire..................................................................................................................

AII. <onctions utiles sur les c+aines de caractCres......................................................................2#AIII.Les Bc+iers........................................................................................................................... 2,

#. Les Bc+iers binaires.................................................................................................................

a. Ecrire des données binaires en utilisant les %trea"s...........................................................b. Lire des données binaires en utilisant les %trea"s...............................................................c. E&e"ple co"plet..................................................................................................................

(. Les Bc+iers te&tes....................................................................................................................

a. Ecriture dans le Bc+ier..........................................................................................................b. Lecture dans le Bc+ier..........................................................................................................

AIV.@utres................................................................................................................................... 2

• Mettre en œuvre des actions sur les évènements les plus courants : Sélection, Click, Evénements de

clavier, copier (couper) déposer

• Utilisation des contrôles avancés (date, calendrier…) et contrôles de mise en orme de te!te ("#$)…

• Utilisation des %o&tes de dialo'ue : ouverture de icier, sauve'arde, impression, aperu, couleur et t*p

de police…parcours de dossiers…

Page 4: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 4/45

M.El Kadali Page 4 sur 45

II. Les déclarations

1. Les types

Les valeurs sont stoc>ées dans des variables. @vant d’utiliser une variable il !aut la déclarer.

8+a-ue variable a un type.

♣ 7éclarer une variable b entiCre '

  int b;

♣ 7éclarer deu& variables a et b entiCre '

  int a;  int b = 5;Ou :

int a,b;  b = 5 ;

♣ 7éclarer une variable de type c+ar '

  char c = 'r';

Page 5: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 5/45

M.El Kadali Page 5 sur 45

2. Portée d’une variable

a. Les variables globales

La portée d’un identiBcateur correspond au& parties du progra""e ou cet identiBcateur peut

Dtre utilisé sans provo-uer d’erreur la co"pilation.La portée d’une variable globale ou d’une !onction globale est égale au progra""e.La portée d’une variable locale va de sa déBnition $us-u’ la Bn de la pre"iCre instructionco"posée ...F0 -ui contient sa déBnition.7eu& variables peuvent avoir le "D"e no" "ais dans ce casG elles doivent avoir deu& portéediHérentes.E&e"ple 1 '  {  int i = 5;   MessageBox.Show(i.ToString()); // affiche 5  }   MessageBox.Show(i.ToString());  // erreur

Erreur ' dans la derniCre ligneG l’utilisation de la variable i est !ausse car la variable i ne peutDtre utilisée -u’entre les accolades F.

E&e"ple 2 ' correct{  int i = 5;  Meage!o".Show(i.ToString()); // affiche 5}{  int i = #;

  Meage!o".Show(i.ToString()); // affiche 5}

b. Variables globales à un formulaire

Pour -u’une variable soit connue au niveau de tout le !or"ulaireG il !aut la déclarer en de+orsde toute !onction co""e suit '  $ub%ic $artia% c%a &or : &or  {  $ub%ic int ar*g%oba% = 5 ;

c. Variables globales au projet

ne variable globale au pro$et est une variable -u’on peut utiliser dans tous les élé"ents dupro$et dans tous les !or"ulaires par e&e"ple0.ne !aJon pour travailler avec des variables globales est de ra$outer une classe stati-ue.E&e"ple d’une classe stati-ue contenant des variables utilisation globale '  $ub%ic tatic c%a +%oba%ar

Page 6: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 6/45

M.El Kadali Page  sur 45

  {  $ub%ic tatic String-, tag = new String-, 5;

  $ub%ic tatic int in0ice = ;

  }8ette classe contient 2 variables ' stag et indice.6n peut accéder la variable indice par e&e"ple0 co""e suit '

+%oba%ar.in0ice = 5;

III. Instruction alternative

3. !ynta"e #

i! condition0

instructioninstructioninstruction

Felse

instructioninstructioninstruction

F

%il ny a -uune instructionG les F ne sont pas obligatoires.Les parent+Cses autour de la condition sont obligatoires.E&e"ple 1 ' -u’elle la valeur de la variable a la Bn de ce progra""e

int a;a = ;if (a == ){  a = #;}e%e{  a = 5;

}6n peut l’écrire égale"ent de la !aJon suivante '

int a;a = ;if (a == )  a = #;e%e  a = 5;

le bloc else n’est pas obligatoire

Page 7: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 7/45

M.El Kadali Page $ sur 45

E&e"ple 2 '-u’elle la valeur de la variable a la Bn de ce progra""e int a;a = ;if (a == ){

  a = #;}

4. Imbrication d’instructions alternatives

i! condition10

i! condition20instruction

else

instructionFelse

instructionF

Le else se rapporte la seconde branc+e du i!.

I%. !tructure répétitive

1 &ombre de répétitions connu

d. Structure for

Soit la structure algorithmique  pour :

pour i allant de a b avec un pas de p !aireinstructioninstruction

BnpourLa syntaxe de cette structure en 8N ''or iOa iOb  iOiQp0

 instructioninstruction..

F

&otes

Page 8: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 8/45

M.El Kadali Page ( sur 45

• les 3 arguments du for sont à l'intérieur d'une parenthèse et séparés par despoints-virgules.

• chaque action du for est terminée par un point-virgule.

• l'accolade n'est nécessaire que s'il y a plus d'une action.

• l'accolade n'est pas suivie de point-virgule.

)"emple #int i;  for (i= ; i1=5 ; i=i2){  Meage!o".Show(3!on4our :3 2 i);  }

e. Structure foreach

La syntaxe est la suivante :'oreac* 4ype variable in collection0

instructions...

F

&otes

• collection est une collection d'o!ets énumérale. La collection d'o!etsénumérale que nous connaissons dé!à est le taleau

• Type est le type des o!ets de la collection. "our un taleau# ce serait le type deéléments du taleau

• variable est une variale locale à la oucle qui va prendre successivement pour valeur# toutes les valeurs de la collection.

 $insi le code suivant :string%& amis ( )paul)# )hélène)# )!acques)# )sylvie) *+!oreac+ string no" in a"is0

Meage!o".Show no"0F

 $,icherait :paul+élCne $ac-uessylvie

Page 9: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 9/45

M.El Kadali Page + sur 45

5. &ombre de répétitions inconnu

a Structure tant que (while)

,*ile-conditionactions

F

La oucle se répète tant que la condition est vériée. La ouclepeut ne !amais tre exécutée.

/emarque : l'accolade n'est nécessaire que s'il y a plus d'une actio0xemple :

int a 1 +

,*ilea R 150

Message=o&.%+o/)2on!our )a O a S1 TTaO

F

f. Structure repeter jusqu'a (do while)

La syntaxe est la suivante :do

instructionsF,*ilecondition0

n oucle !usqu'à ce que la condition devienne 4ausse. 5ci laoucle est 4aite au moins une 4ois.

int a 1 +

do

Message=o&.%+o/)2on!our )a O a S1 TT a O

F ,*ileaR150

Page 10: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 10/45

M.El Kadali Page 1/ sur 45

%. !tructure de cas

La syntaxe est la suivante :witch(e"$reion) {  cae :  action;  brea;  cae 6:  action6;  brea;  . .. .. .. .. ..  0efau%t:  action*inon;  brea;}

• la valeur de l'expression de contrôle du switch peut être un entier, un caractère, une chaîne decaractères

• l'expression de contrôle est entourée de parenthèses.• la clause default peut être absente.• les valeurs vi sont des valeurs possibles de l'expression. Si l'expression a pour valeur vi , les actions

derrière la clause case vi sont exécutées.• l'instruction break fait sortir de la structure de cas.• chaque bloc d'instructions lié à une valeur vi doit se terminer par une instruction de branchement

brea!, "oto, return, ...# sinon le compilateur si"nale une erreur.

$xemple % int choi" = 6;tring ch = 33;boo% erreur = fa%e;witch (choi") {  cae :

ch = 33;  brea;  cae 6:

ch = 363;  brea;

  cae #:  ch = 3#3;  brea;  0efau%t:

erreur = true;brea;

}=7

Page 11: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 11/45

M.El Kadali Page 11 sur 45

%I. Les tableau"

1 Tableau unidimensionnel

&es tableaux ( sont indexés à partir de )éro * autrement dit, leur premier élément porte l'index )éro. $n (les tableaux fonctionnent de la même fa+on que dans la plupart des autres lan"a"es courants. l existecependant quelques différences dont vous deve) tenir compte.&orsque vous déclare) un tableau, les crochets -# doivent suivre le t/pe, et non l'identificateur. &a présencede crochets après l'identificateur ne correspond pas à une s/ntaxe conforme en (.

int- tab%e; // non int tab%e-;

E&e"ple 1 'int- nuber; // 0ec%are nuber a an int arra8 of an8 i9e

nuber = new int-; // nuber i a e%eent arra8nuber = new int-6; // now it' a 6e%eent arra8nuber- = ;nuber-6 = <;nuber-# = ;nuber-5 = ;nuber-> = >;nuber- = ?; //erreur

E&e"ple 2 ' char- chr;chr = new char-5;chr- = 'a';chr- = 'b';

E&e"ple3 'tring- tab%e = new tring-5;tab%e- = 3une $hrae3;tab%e- = 3une autre $hrae3;

E&e"ple # '

int- n = new int- {,#,5,,>} ;int- = {,#,5,,>} ;

TP 1 : enregistrer les no"bres saisis par l’utilisateur.

Page 12: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 12/45

M.El Kadali Page 12 sur 45

8orrection ' dans le dossier U tableau& tp1

TP 2 : enregistrer les no"s et préno"s.8orrection ' dans le dossier U tableau& tp2

. Tableau multidimensionnel

tring-, nae = new tring-5,;int-, nb ;nb = new int-5, ;

int-,, button = new int-,5,#;

$. Tableau de tableau"

int-- ta = new int-#-;ta - = new int-5;ta - = new int-;ta -6 = new int-6;ta-- = ;

TP 1 : re!aire le dernier tp avec un seul tableau.Correction :  U tableau& tp 3 tableau "ultidi"ensionnel

Révision : les bouclesG les tableau&G list=o&0'@$outer le bouton U %uppri"er au 4P précédant.Correction :  U tableau& tp # revision

%II. Les 'ormulaires

1 0pérations courantes

♣ @Wc+er un !or"ulaire !or"2 partir d’un autre !or"ulaire !or"1 non "odal ' on accCde-uand "D"e l’autre0 '

Page 13: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 13/45

M.El Kadali Page 13 sur 45

&or6 fr = new &or6();fr.Show();

♣ L’aWc+er sous !or"e d’une boite de dialogue "odale '

fr.Show@ia%og();

♣ <er"er une !enDtre '

fr.A%oe() ;

♣ 8ac+er une !enDtre '

&r.Bi0e() ;

♣ 7ans !or"2 on ra$oute la !onction '

$ub%ic tring a*a%eur()  {  return n.Te"t;  }

♣ récupérer une donnée"a valeur0 0 dans <or" 1 '

&or6 fr = new &or6();fr.Show@ia%og();re.Te"t = fr.a*a%eur();

TP 1 :

@Wc+er une valeur saisie dans un !or"ulaire en!ant.

(. Les applications I et !I

&es applications d'interface multi documents 01# vous permettent d'afficher simultanément plusieursdocuments, chacun dans une fenêtre différente. &es applications 01 comportent souvent un élément de me2enêtre contenant des sous3menus qui permettent de passer d'une fenêtre ou d'un document à un autre.

• 1ans la fenêtre 4ropriétés, affecte) à la propriété s01ontainer  la valeur true.e faisant, vous dési"ne) le formulaire comme le conteneur 01 des fenêtres enfants.

• 5 partir de la boîte à outils, faites "lisser un contrôle 0enustrip sur le formulaire.• 67outer une nouvelle fenêtre % 2orm8• 67outer ce code à l9un des éléments du menu de la fenêtre parent %

$riate oi0 aaToo%Stri$MenuCte*A%ic(ob4ect en0er, DentErg e){

Page 14: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 14/45

M.El Kadali Page 14 sur 45

  &or6 newM@CAhi%0 = new &or6();  // Set the Farent &or of the Ahi%0 win0ow.  newM@CAhi%0.M0iFarent = thi;  // @i$%a8 the new for.  newM@CAhi%0.Show();}

;ésultat '

2 ontrles et composants debote de dialo6ue

&es boîtes de dialo"ue permettent d'intera"iravec l'utilisateur et de récupérer desinformations. $n termes simples, une boîte dedialo"ue est un formulaire dont la propriété

d'énumération 2orm:orderSt/le a lavaleur 2ixed1ialo".;ne fois qu'une boîte de dialo"ue est fermée, leformulaire qui l'affichait peut récupérer le résultat de celle3ci en référen+ant sa propriété 1ialo"<esult ou lavaleur de retour d'un appel à la méthode Sho=1ialo".

Pour aWc+er une bo:te de dialogue&or6 fr = new &or6();fr.Show@ia%og();

a La proprit !ialogue"esult

Vous pouveX produire vous propre boite de dialogue.tilser poir cela La propriété7ialogue;esult des boutons.

Page 15: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 15/45

M.El Kadali Page 15 sur 45

tiliser la propriété 7ialogue;esult des 2 boutons voir i"age0 'Le code'

  &or# fr = new &or#();  if (fr.Show@ia%og() == @ia%ogGeu%t.OH)  Meage!o".Show(3o3);

e%e  Meage!o".Show(3annu%er3);

g. #pen$ile!ialog

Lutilisation de ce co"posant dans votre application Yindo/s plut9t -ue de conBgurer votrepropre bo:te de dialogue vous oHre un "oyen si"ple de sélectionner des Bc+iers.

  TTouvrir la boite de dialogue

  6pen<ile7ialog d! O ne/ 6pen<ile7ialog0

  d!.%+o/7ialog0

  TTobtenir seule"ent le no" du Bc+ier sélectionné

  te&t=o&1.4e&t O d!.%a!e<ile*a"e

  TTobtenir le c+e"in du Bc+ier sélectionné

  te&t=o&2.4e&t O d!.<ile*a"e

)"emple #

6pen<ile7ialog !d O ne/ 6pen<ile7ialog0

TT on para"Ctre la bo:te de dialogue saveBle7ialog1

!d.Initial7irectory O Z[8'\sers\Mali>a\7es>top\suppri"er[

Page 16: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 16/45

M.El Kadali Page 1 sur 45

!d.<ilter O [<ic+iers te&te ].t&t0^].t&t^4ous les Bc+iers ].]0^].][

TT on aWc+e la bo:te de dialogue et on récupCre son résultat

i!  !d.%+o/7ialog0 OO 7ialog;esult.6K0

  TT on récupCre le c+e"in du Bc+ier

  string no"<ic+ier O !d.<ile*a"e

  try

 

  c+ar_` buHer O ne/ c+ar_3`

  TT on ouvre le Bc+ier en écriture

  %trea";eader Bc+ier O ne/ %trea";eaderno"<ic+ier0

  TT on lit le te&te dedans

  Bc+ier.;eadbuHerG 5G 30

  Bc+ier.8lose0

  te&t=o&1.4e&t O buHer_5`.4o%tring0 Q buHer_1`.4o%tring0 Q buHer_2`.4o%tring0

  F

  catc+ E&ception0

  TT problC"e

  Message=o&.%+o/[ProblC"e lecture du Bc+ier[0

  F

F

h. Save$ile!ialog

8e contr9le aWc+e une boite de dialogue -ui de"ande l’utilisateur de sélectionner une"place"ent pour l’enregistre"ent d’un Bc+ier.

Page 17: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 17/45

M.El Kadali Page 1$ sur 45

E&e"ple '

%ave<ile7ialog sv O ne/ %ave<ile7ialog0

TT on para"Ctre la bo:te de dialogue saveBle7ialog1

sv.Initial7irectory O Z[8'\sers\Mali>a\7es>top\suppri"er[

sv.<ilter O [<ic+iers te&te ].t&t0^].t&t^4ous les Bc+iers ].]0^].][

TT on aWc+e la bo:te de dialogue et on récupCre son résultat

i!  sv.%+o/7ialog0 OO 7ialog;esult.6K0

  TT on récupCre le no" du Bc+ier

  string no"<ic+ier O sv.<ile*a"e

  try

 

  TT on ouvre le Bc+ier en écriture

  %trea"Yriter Bc+ier O ne/ %trea"Yriterno"<ic+ierG !alse0

  TT on écrit le te&te dedans

  Bc+ier.Yritete&t=o&1.4e&t0

  Bc+ier.8lose0

  F

  catc+ E&ception e&0

  TT problC"e

  Message=o&.%+o/[ProblC"e lécriture du Bc+ier [ Q

  e&.Message Q [0[G [Erreur[G Message=o&=uttons.6KG Message=o&Icon.Error0

F

Page 18: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 18/45

M.El Kadali Page 1( sur 45

i. %olor!ialog

8olor7ialog clr O ne/ 8olor7ialog0

i!  clr.%+o/7ialog0 OO 7ialog;esult.6K0

  te&t=o&1.=ac>8olor O clr.8olor

F

 j. $ont!ialog

<ont7ialog police O ne/ <ont7ialog0

i!  police.%+o/7ialog0 OO 7ialog;esult.6K0

  te&t=o&1.<ont O police.<ont

F

&. rint!ialog

%III. 7oite 8 outils

1 'orm

Page 19: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 19/45

M.El Kadali Page 1+ sur 45

2 List7o"

"ropriété SelectionMode :

6ne ' un seul élé"ent peut Dtre sélectionnéMultiE&tended ' "ultiSsélection possible. Maintenir appuyée la touc+e %I<4 et cli-uer sur un

élé"ent étend la sélection de lélé"ent précéde""ent sélectionné lélé"ent courant.Multi%i"ple ' "ultiSsélection possible ' un élé"ent est sélectionné T désélectionné par un clicde souris ou par appui sur la barre despace.

  //i0er %e %itbo"  %it!o".Cte.A%ear();  //a4outer un noue% e%eent au itbo"  %it!o".Cte.E00(3noueau e%eent3);  //obtenir % in0e" I%ectinnI  int in0e" = %it!o".Se%ecte0Cn0e";  //a4outer %'I%Ient e%ectionnI  %it!o"6.Cte.E00(%it!o".Cte-in0e");  //u$$rier un I%Ient 

%it!o".Cte.GeoeEt(in0e");  //nobre 0JI%eent e%ectionnI 0u %itbo" 

Cnt nb = Kit!o".Se%ecte0Cn0ice.Aount ;//nobre 0JI%eent 0u %itebo" 

Cnt nb = Kit!o".Cte.Aount ;//Obtenir %JI%eent 0Jin0e"e 5 String = %it!o".Cte-5.ToString();

+. *ec9bo"

  if (chec!o".Ahece0)  Meage!o".Show(3ert3);  e%e  Meage!o".Show(3b%anc3);

1/. :adiobutton

6es outons radio présents dans un mme conteneur# ici le GroupBox # sont e"clusi's l'un de l'autre :seul l'un d'entre eux est coché.

Page 20: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 20/45

M.El Kadali Page 2/ sur 45

  if ( ra0io!utton.Ahece0 )  Meage!o".Show(3ra0io3);  e%e  Meage!o".Show(3ra0io63);

11. ombo7o"

n co"posant ComboBox  est une liste déroulante doublée dune Xone de saisie ' lutilisateurpeut soit c+oisir un élé"ent dans 20 soit taper du te&te dans 10. Il e&iste trois sortes de8o"bo=o& B&ées par la propriété DropDownStyle '

%i"ple liste non déroulante avec Xone dédition♣ 7rop7o/n liste déroulante avec Xone dédition♣ 7rop7o/nList liste déroulante sans Xone dédition

Soit C un como et C.Items sa liste d'éléments. n a les propriétés suivantes :

♣ 8.Ite"s.8ount TTnomre d'éléments du como

♣ 8.Ite"s_i` TTélément i du como

♣ 8.@ddob$ect o0 TTa!oute l'o!et o en dernier élément du como

♣ 8.@dd;angeob$ect_` ob$ets0 TT a!oute un taleau d'o!ets en n de como

♣ 8.Insertint iG ob$ect o0 TTa!oute l'o!et o en position i du como♣ 8.;e"ove@tint i0 TTenlève l'élément i du como

♣ 8.;e"oveob$ect o0 TTenlève l'o!et o du como

♣ 8.8lear0 TTsupprime tous les éléments du como

♣ 8.Inde&6!ob$ect o0 TTrend la position i de l'o!et o dans le como

♣ 8.%electedInde& TTindex de l'élément sélectionné

♣ 8.%electedIte" TTélément sélectionné

♣ 8.%electedIte".4ostring0 TTtexte a,iché de l'élément sélectionné

♣ 8.4e&t TTtexte a,iché de l'élément sélectionné

Page 21: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 21/45

M.El Kadali Page 21 sur 45

12. List%ie,

@$outer un élé"ent au ListVie/ '  KitiewCte it = new KitiewCte(3Haii3);  it.SubCte.E00(3Can3);  %itiew.Cte.E00(it);

Propriétés i"portante '

Evéne"ents i"portant '

TT le "D"e -ue %electedInde&8+anged

Page 22: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 22/45

M.El Kadali Page 22 sur 45

13. Picture7o"

Pour a$outer une i"age.

14. data;rid%ie,

Le contr9le ata;rid%ie, oHre un "oyen puissant et e&ible daWc+er des données sous!or"e de tableau.Pour a$outer une ligne dans le datagridvie/ '  0ata+ri0iew.Gow.E00(3Soufi3,3Safa3);

15. Tree%ie,

Le contr9le 4reeVie/ per"et daWc+er une collection de données +iérarc+i-ue ou i"bri-uéeGou récursive0 dans un arbre présentant des nuds e&tensibles.

;a$outer un nud au début '  treeiew.Lo0e.E00(3noueau noeu03);

;a$outer un nud Bls du nud U n1 '  TreeLo0e- a = treeiew.Lo0e.&in0(3n3, true);

a-.Lo0e.E00(3new3);

1. Timer

  Tier tier = new Tier();  //a*fonction et %a fonction ui a e rI$eter

// Der8tie tier tic, tier*Tic wi%% be ca%%e0tier.Tic 2= new DentBan0%er(a*fonction);

// Cntera%%e, en i%%iecon0e

Page 23: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 23/45

M.El Kadali Page 23 sur 45

  tier.Cntera% = ;  // Dnab%e the tier  tier.Dnab%e0 = true;  // Start the tier  tier.Start();

1$. Pro6ress7ar

Indi-ue la progression dune opération.  Meage!o".Show( Aonert.ToString($rogre!ar.Ma"iu));  //0Ifinit %a $oition actue%%e 0e %a barre 0e $rogreion  $rogre!ar.a%ue = ;  //%a barre aance 0e  

$rogre!ar.Cncreent();

1(. !tatus!trip

;eprésente un contr9le de barre détat Yindo/s.au "o"ent du design pour le contr9le %tatus%trip G Les élé"ents suivants sont disponible ena$out au contr9le %tatus%trip entre autres0'

 4ool%trip%tatusLabel 4ool%tripProgress=ar

1+. Picture7o"

%ert contenir une i"age.

2/. dateTimePic9er%ert sélectionner une date.  TT aWc+er le te&te du controle  Message=o&.%+o/[le te&t du controle ' [Q date4i"ePic>er1.4e&t0

  7ate4i"e d1 O date4i"ePic>er1.Value  Message=o&.%+o/[ la date et l+eure ' [ Q d1.4o%tring00  Message=o&.%+o/[ la date ' [ Q d1.7ate.4o%tring00  Message=o&.%+o/[ la date ' [  Q d1.4o%+ort7ate%tring00

Message=o&.%+o/[ l+eure ' [ Q d1.4i"e6!7ay 0

  7ate4i"e d2 O d1.@dd7ays(0 TTra$oute ( $ours la date dte et laHecte dt2  d2 O d2.@ddMont+s#0TTra$oute # "ois la date dte  d2 O d2.@ddears30TTra$oute 3 ans la date dte  date4i"ePic>er1.Value O d2

  d2 O d1.@ddours)0TTra$oute ) +eures la date dte  int $our O d1.7ayTTobtient le co"posant $our de la date dte  int "ois O d1.Mont+TTobtient le co"posant "ois de la date dte  int annee O d1.earTTobtient le co"posant année de la date dte  Message=o&.%+o/[le $our est '[ Q $our.4o%tring00  Message=o&.%+o/[le "ois est '[ Q "ois.4o%tring00  Message=o&.%+o/[lannée est '[ Q annee.4o%tring00

Page 24: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 24/45

M.El Kadali Page 24 sur 45

21. Les conteneurs

l. $lowLaoutanel

Le contr9le <lo/LayoutPanel réorganise son contenu dans un sens de déroule"ent +oriXontalou vertical. Vous pouveX spéciBer le sens du déroule"ent en déBnissant la valeur de lapropriété <lo/7irection.

m. groupo*

<eprésente un contrôle >indo=s qui affiche un frame autour d'un "roupe de contrôles avec une lé"endefacultative.

n. anel

&es contrôles 4anel >indo=s 2orms permettent de re"rouper d'autres contrôles. l existe trois raisons dere"rouper des contrôles. <e"roupement visuel d'éléments connexes en vue de fournir une interface plus claià l'utilisateur * re"roupement de pro"rammation, des cases d'option par exemple * enfin, au moment du desi"déplacement de plusieurs contrôles comme une même entité.

o. +ab%ontrol

?Cre et aWc+e un ense"ble d’onglets contenant des controles et des co"posants.

22. Les menus

p. ,enuStrip

4our créer un menu principal, on choisit le composant ?0enuStrip?.

q. %onte*t,enuStrip 

1éfinit un menu contextuel.

<ésultat lors de l9exécution %

Page 25: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 25/45

M.El Kadali Page 25 sur 45

23. Instanciation et personnalisation dynami<ue des contrles #

a -nstanciation dun contr/le

!utton b = new !utton();

Te"t!o" t = new Te"t!o"();Ahec!o" ch = new Ahec!o"();Aontro% cnt = new Aontro% ();Ga0io!utton r0 = new Ga0io!utton();

r. ersonnalisation dun contr/le

E&e"ple 1 '  !utton b = new !utton();

  b.Te"t = 3Aa%cu%er3;  b.!acAo%or = Ao%or.!eige;

E&e"ple 2 '  Te"t!o" t = new Te"t!o"();

  t.Te"t = 3Lo3;  t.TabCn0e" = ;  t.Te"tE%ign = Bori9onta%E%ignent.Keft

E&e"ple 3 'Te"t!o" t = new Te"t!o"();

  t.Te"t = 3Lo3;  t.Ni0th = ;  t.Beight = 6;

s. ositionnement un contr/le

  !utton b = new !utton();  b.Te"t = 3Aa%cu%er3;  b.!acAo%or = Ao%or.!eige;  Foint $t = new Foint(6, 66);  b.Kocation = $t;

t. 0jout dun contr/le au formulaire

E&e"ple 1 '

  Ahec!o" ch = new Ahec!o"();  ch.Te"t = 3ert 3;  thi.Aontro%.E00(ch);

Page 26: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 26/45

M.El Kadali Page 2 sur 45

E&e"ple 2 ' (a4out un +rou$bo")  Ga0io!utton r0 = new Ga0io!utton();  r0.Te"t = 3b%eu3;  grou$!o".Aontro%.E00(r0);

I=. Les événements

1 é>nition

n événe"ent est un "essage trans"is par un ob$et pour signaler loccurrence dune action. Laction peutDtre provo-uée par une interaction utilisateurG telle -uun clic de sourisG ou peut Dtre déclenc+ée par une autlogi-ue de progra""e. Lob$et -ui déclenc+e lévéne"ent est appelé é"etteur dévéne"ent. Lob$et -uicapture lévéne"ent et y répond est appelé récepteur dévéne"ents.

24. )vénements courants#

MouseEnter ' la souris vient dentrer dans le do"aine du contr9leMouseLeave ' la souris vient de -uitter le do"aine du contr9leMouseMove ' la souris bouge dans le do"aine du contr9leMouse7o/n ' Pression sur le bouton gauc+e de la sourisMousep ' ;elc+e"ent du bouton gauc+e de la souris8lic> ' %e produit lors du cli-ue sur le bouton.

Load ' %e produit lors du c+arge"ent du !or"ulaire.Enter ' %e produit lors-ue le contr9le devient le contr9le acti! du !or"ulaire.

 4e&t8+anged ' se produit lors-ue la valeur 4e&t du contr9le est "odiBée.Validated ' se produit aprCs la validation réussie d’un contr9le.Validating ' se produit lors de la validation du contr9le.

Evéné"ents du clavierKey7o/n ' se produit lors-u’une touc+e est en!oncée pour la pre"iCere !ois.KeyPress ' se produit lors-ue le contr9le a le !ocus et -ue l’utilisateur appuie sur une touc+e e

la relac+e.Keyp ' se produit lors-u’une touc+e est relac+ée.

Page 27: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 27/45

M.El Kadali Page 2$ sur 45

25. ?ssocier une 'onction 8 un évènement

fuand vous cli-ueX sur un boutonG Yindo/s doit in!or"er votre progra""e -u’un clic a été détecPour celaGYindo/s appelle une !onction de votre progra""e. ne telle !onction s’appelle U !onction de

traite"ent de l’événe"ent clic event andler! ou plus si"ple"ent andler en anglais0 .8ette!onction doit avoir la signature suivante ' 

void &yXob$ect senderG Event@rgs e0

Pour déclenc+er une !onction suite un évén"ent '  private void button1t8lic>ob$ect senderG Event@rgs e0    ...  F  ...  button1.8lic> QO ne/ %yste".Eventandlerbutton18lic>0

2. Tp

1. 6bliger l’utilisateur ne saisir -ue des no"bres'Pre"iCre !aJon

$riate oi0 ca$ita%*He8Fre(ob4ect en0er, He8FreDentErg e){  int a = e.He8Ahar;  if ((a 1 >) PP (a 7 5))  {  e.Ban0%e0 = true;  }  }

@eu"iQe !aJon $riate oi0 ca$ita%*He8Fre(ob4ect en0er, He8FreDentErg e){  if (char.C@igit (e.He8Ahar))  e.Ban0%e0 = true;

}

2. 6bliger l’utilisateur ne saisir -ue des lettres'

$riate oi0 ca$ita%*He8Fre(ob4ect en0er, He8FreDentErg e){  int a = e.He8Ahar;  if ((a 1 >) PP (a 7 66))//%etter inicu%e  {  e.Ban0%e0 = true;

Page 28: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 28/45

M.El Kadali Page 2( sur 45

  }  }

@eu"iQe !aJon $riate oi0 ca$ita%*He8Fre(ob4ect en0er, He8FreDentErg e)

{  if (char.CKetter(e.He8Ahar))  e.Ban0%e0 = true;}

3. @Wc+er un "essage au c+arge"ent du !or"ulaire#. @Wc+er un "essage la !er"eture du !or"ulaire(. Lors du cli-ue sur un radiobo&G le !or"ulaire prend la couleur c+oisie.).

2$. é>nir un nouveau événementIciG le but est de créer des événe"ents -ui vont Dtre propres votre application.

u. #bjets delegate

n délégué dele"ate en anglais0 est un ob$et en !aitG de la classe 7elegate ou d’une classe dérivéde celleSciG "ais peu i"porte0 -ui per"et d’appeler une !onctionG -ui n’est pas nécessaire"enttou$ours la "D"e. Il peut "D"e s’agir d’un appel une série de !onctions.Prenons un e&e"ple si"pleG -ue nous co""enterons ensuite '  oi0 f()

{

Meage!o".Show(3&onction f3);}

  oi0 g(){

Meage!o".Show(3&onction g3);}

  // ceci et une 0Ifinition 0e t8$e : T et un t8$e  0e%egate oi0 T();  $riate oi0 button*A%ic(ob4ect en0er, DentErg e)  {  T 0e = new T(f); // 0Ic%aration 0'une ariab%e. 30e3 fait rIfIrenc f

  0e(); // e"Icute f  0e = new T(g); //3 0e3 fait aintenant rIfIrence g  0e(); // e"Icute g  } 4 désigne un type d’ob$et au "D"e titre -ue intG double0 et non une déclaration de variableG unesignature de !onctionG ou -uoi -ue ce soit d’autreG co""e un coup d’oeil rapide pourrait le !airecroire.

Page 29: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 29/45

M.El Kadali Page 2+ sur 45

n délégué peut !aire ré!érence plusieurs !onctionsG et ainsi les e&écuter les unes la suite desautres on parle alors de multicastin" dele"ate0. h tout "o"entG il est en eHet possible d’a$outerG de retirerG des !onctions la liste des !onctions ré!érencées par un délégué. Par e&e"ple '

  // 0e contient une rIfIrence f

  0e = new T(f);// 0e contient une rIfIrence f et une autre g  0e 2= new T(g);  // e"Icution 0e f et $ui 0e g  0e();  // 0e ne contient $%u uJune rIfIrence g  0e = new T(f);  // e"Icution 0e g  0e();  // 0e ne contient $%u aucune rIfIrence 0e fonction  0e = new T(g);

if (0e R= nu%%)0e();

  e%e  Meage!o".Show(3Eucune fonction e"Icuter3);*otre variable de prend Bnale"ent la valeur null -uand plus aucune !onction ne lui est liée.

v. !lgu pour l'vnement

n délégué dévéne"ent est utilisé pour déBnir la signature de lévéne"ent. Par conventionG dansle .*E4 <ra"e/or>G les événe"ents ont la signature #vent$amesender G e0G o sender  est un 6b$ect -ui !ourune ré!érence la classe ou la structure -ui a déclenc+é lévéne"entG et e est un ob$et Event@rgs ou un ob$edérivé de Event@rgs -ui !ournit les données dévéne"ent. ?énérale"entG la déBnition de délégué prend alorla !or"e #vent$ameandlersender G e0.Le&e"ple suivant déBnit un délégué dévéne"ent no""é @lar"Eventandler.

Public 7elegate %ub @lar"Eventandlersender @s 6b$ectG e @s @lar"Event@rgs0

La synta&e est si"ilaire celle dune déclaration de "ét+ode le "ot clé dele6ate in!or"e toute!ois leco"pilateur -u@lar"Eventandler est un type délégué. Par conventionG les délégués dévéne"ent Bgurantdans le .*E4 <ra"e/or> possCdent deu& para"CtresG la source -ui a déclenc+é lévéne"ent et les données lévéne"ent.

Pre"iCre !aJon '7ans le !or"ulaire parent '

  &or6 a = new &or6();  a.Show@ia%og();  te"t!o".Te"t = a.chaine;  //%ibQre %e reouce uti%iI $our %e fou%aire a

a.@i$oe();7ans le !or"ulaire en!ant '  //%a ariab%e chaine et une ariab%e g%oba%e au foru%airecourant ($ub%ic tring chaine;)

Page 30: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 30/45

M.El Kadali Page 3/ sur 45

  chaine = te"t!o".Te"t;  // &ereture 0u foru%aire  thi.A%oe();7eu&iC"e !aJon 6/ner0'7ans le !or"ulaire parent '

$ub%ic tring chaine;  $riate oi0 button*A%ic*(ob4ect en0er, DentErg e)  {  &or6 f6 = new &or6();  f6.Owner = thi;  f6.Show@ia%og();  Meage!o".Show(chaine);}7ans le !or"ulaire en!ant '  // On $ae %e contenu 0e Te"t!o" au foru%aire $arent  &or f = (&or)thi.Owner; // f et %e $arent  f.chaine = te"t!o".Te"t;  thi.A%oe();

 4roisiC"e !aJon'

=. onversions de variables

  int n = Aonert.ToCnt?(33);%i la conversion réussi n prend la valeur 1# sinon une erreur se produit.  tring ch = 35,53; ;  f%oat f;  !oo%ean b% = f%oat.Tr8Fare(ch, out f);%i la conversion réussi la variable j=l’ prends la valeur true sinon la valeur !alse.

8onvertir en c+aine de caractCre pres-ue n’i"porte -uel variable '  int n = ;  tring chaine = n.ToString();

int a = int.$are(5.5);

=I. Instanciation et personnalisation des contrles #

1 Instanciation et personnalisation

E&e"ple 1 '  !utton b = new !utton();

  b.Te"t = 3Aa%cu%er3;  b.!acAo%or = Ao%or.!eige;D"e$%e 6 :

  Te"t!o" t = new Te"t!o"();

Page 31: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 31/45

M.El Kadali Page 31 sur 45

  t.Te"t = 3Lo3;  t.TabCn0e" = ;  t.Te"tE%ign = Bori9onta%E%ignent.KeftD"e$%e # : 

Te"t!o" t = new Te"t!o"();

  t.Te"t = 3Lo3;  t.Ni0th = ;  t.Beight = 6;

2(. Positionner un contrle

  !utton b = new !utton();  b.Te"t = 3Aa%cu%er3;  b.!acAo%or = Ao%or.!eige;  Foint $t = new Foint(6, 66);

  b.Kocation = $t;

2+. ?@out au 'ormulaire

E&e"ple 1 '

  Ahec!o" ch = new Ahec!o"();  ch.Te"t = 3ert 3;  thi.Aontro%.E00(ch);

D"e$%e 6 : (a4out un +rou$bo")

  Ga0io!utton r0 = new Ga0io!utton();  r0.Te"t = 3b%eu3;  grou$!o".Aontro%.E00(r0);

=II. Aonctions utiles sur les c*aines de caractères

  Uregion Aoncat

  tring a = 3Vaaria3;  tring b = tring.Aoncat(a, 3 Eb0e%%ah3);  //Aono%e.NriteKine(b);

  Uen0region  Uregion inert

  tring abc = 3abc0efgh3;  tring 4 = abc.Cnert(, 33);

Page 32: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 32/45

M.El Kadali Page 32 sur 45

  //Aono%e.NriteKine(4);

  Uen0region  Uregion Geoe

  tring tr = 3a9ert3;  //Aono%e.NriteKine(tr.Geoe(6));

  Uen0region  Uregion Ge$%ace

  tring re$ = 3D% a0iri ab0e%%ah3;  tring newGe$ = re$.Ge$%ace(3a3, 3HE3);  //Aono%e.NriteKine(newGe$);

  Uen0region  Uregion Tri

  tring tr = 3 c%a t0i 3; 

//Aono%e.NriteKine(3Tri3);  //Aono%e.Nrite(3W3);  //Aono%e.Nrite(tr.Tri());  //Aono%e.NriteKine(3W3);

  //Aono%e.NriteKine(3TriStart3);  //Aono%e.Nrite(3W3);  //Aono%e.Nrite(tr.TriStart());  //Aono%e.NriteKine(3W3);

  //Aono%e.NriteKine(3TriDn03);  //Aono%e.Nrite(3W3);  //Aono%e.Nrite(tr.TriDn0());  //Aono%e.NriteKine(3W3);

  Uen0region  Uregion X$$er Y Kower  tring nae = 3Eb0D%%ah3;

  //Aono%e.NriteKine(nae.ToX$$er());  //Aono%e.NriteKine(nae.ToKower());

  Uen0region  Uregion SubString

  tring tr6 = 3abc0efgh43;

Page 33: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 33/45

M.El Kadali Page 33 sur 45

  tring tr# = tr6.Subtring(#, ); //0efg  //Aono%e.NriteKine(tr#);  Uen0region  Uregion &orat

  tring forattring = tring.&orat(3 {} 2 {} = {6}3, , 5?);  //Aono%e.NriteKine(forattring);

  Uen0region  Uregion S$%it

  tring wor0 = 3icrooft iua% tu0io char$3;  tring- wor0 = wor0.S$%it(' ');

  //Aono%e.NriteKine(wor0.Aount().ToString()); //

  foreach (tring ite in wor0)  {  //Aono%e.NriteKine(ite);  }

  Uen0region

class Progra" static void Mainstring_` args0

string une8+aine O [loiseau vole auSdessus des nuages[

aWc+e[une8+aineO[ Q une8+aine0aWc+e[une8+aine.Lengt+O[ Q une8+aine.Lengt+0aWc+e[c+aine_15`O[ Q une8+aine_15`0aWc+e[une8+aine.Inde&6!\[vole\[0O[ Q une8+aine.Inde&6![vole[00aWc+e[une8+aine.Inde&6!\[&\[0O[ Q une8+aine.Inde&6![&[00aWc+e[une8+aine.LastInde&6!a0O[ Q une8+aine.LastInde&6!a00aWc+e[une8+aine.LastInde&6!&0O[ Q une8+aine.LastInde&6!&00aWc+e[une8+aine.%ubstring#G,0O[ Q une8+aine.%ubstring#G ,00aWc+e[une8+aine.4opper0O[ Q une8+aine.4opper00aWc+e[une8+aine.4oLo/er0O[ Q une8+aine.4oLo/er00aWc+e[une8+aine.;eplaceaG@0O[ Q une8+aine.;eplaceaG @00string_` c+a"ps O une8+aine.%plitnull0!or int i O 5 i c+a"ps.Lengt+ iQQ0

aWc+e[c+a"ps_[ Q i Q [`O_[ Q c+a"ps_i` Q [`[0

FTT!oraWc+e[koin\['\[Gc+a"ps0O[ Q %yste".%tring.koin['[G c+a"ps00aWc+e[\[ abc \[0.4ri"0O_[ Q [ abc [.4ri"0 Q [`[0

FTTMainpublic static void aWc+estring "sg0

TT aWc+e "sg8onsole.YriteLine"sg0

FTTaWc+e

Page 34: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 34/45

M.El Kadali Page 34 sur 45

=III. Les >c*iers

 4+e .*E4 <ra"e/or> enables you to use strea"s. @ strea" is a se-uence o! bytesG/+ic+ could co"e !ro" a Ble on t+e Ble syste"G a net/or> connectionG or "e"ory.%trea"s enable you to read !ro" or /rite to a data source in s"allG "anageable dat

pac>ets.

 4+e .*E4 <ra"e/or> provides several strea" classes t+at enable you to /or> /it+ avariety o! data and data sources. Y+en c+oosing /+ic+ strea" classes to useG youneed to consider t+e !ollo/ing'

• Y+at type o! data you are reading or /ritingG !or e&a"pleG binary oralp+anu"eric.

• Y+ere t+e data is storedG !or e&a"pleG on t+e local Ble syste"G in "e"oryG or ona /eb server over a net/or>.

 4+e .*E4 <ra"e/or> class library provides several classes in t+e %yste".I6 na"espact+at you can use to read and /rite Bles by using strea"s.

 4+e .*E4 <ra"e/or> provides "any strea" classes t+at you can use to read and /ritediHerent types o! data !ro" diHerent types o! data sources. 4+e !ollo/ing tabledescribes so"e o! t+ese strea" classesG and /+en you "ig+t /ant to use t+e".

3/. Les >c*iers binaires

a 1crire des donnes binaires en utilisant les Streams

Page 35: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 35/45

M.El Kadali Page 35 sur 45

string BlePat+ O Z[8'\sers\"oi\7ocu"ents\pro$ets c\test1\test1\Mon<ic+ier.t&t[<ile%trea" Bc+ier O ne/ <ile%trea"BlePat+G <ileMode.8reate G <[email protected]

TTecrire du binaire=inaryYriter /r O ne/ =inaryYriterBc+ier0

byte_` donnee O ne/_` byte0(G byte0)G byte0a F/r.Yritedonnee0/r.8lose0Bc+ier.8lose0

w. Lire des donnes binaires en utilisant les Streams

string c+e"in O Z[8'\sers\Mali>a\7ocu"ents\pro$ets c\test1\test1\Mon<ic+ier.t&t[

<ile%trea" Bc+ier O ne/ <ile%trea"

c+e"inG TT Pass in t+e source Ble pat+.

<ileMode.6penG TT 6pen an e&isting Ble.

<ile@ccess.;ead0TT ;ead an e&isting Ble.

TT 8reate a =inaryYriter ob$ect passing in t+e <ile%trea" ob$ect.

=inary;eader rd O ne/ =inary;eaderBc+ier0

byte_` donnee O ne/ byte_15`

TTrd.;ead0 retourne un octet G elle retourne S1 si Bn de Bc+er

donnee_5` O byte0rd.;ead0

Message=o&.%+o/donnee_5`.4o%tring00

rd.8lose0

Bc+ier.8lose0

*. 1*emple complet

string c+e"in O Z[8'\sers\Mali>a\7ocu"ents\pro$ets c\test1\test1\Mon<ic+ier.t&t[

Page 36: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 36/45

M.El Kadali Page 3 sur 45

<ile%trea" Bc+ier O ne/ <ile%trea"

  c+e"inG TT le c+e"in du Bc+ier.

  <ileMode.6penG TT ouvrir un B+cier e&istant.

  <ile@ccess.;ead0TT lire dans le Bc+ier e&istant.

 

=inary;eader rd O ne/ =inary;eaderBc+ier0

TT enregistrer le no"bre doctet -u il y a dans notre Bc+ier.

int longueur O int0rd.=ase%trea".Lengt+

byte_` donnee O ne/ byte_longueur`

int returned=yte

int position O 5

/+ile returned=yte O rd.;ead00 O S10

  donnee_position` O byte0returned=yte

  positionQQ

F

TTvoir le contenu -ue nous avons lu

!orint iO5 ilongueur iQQ0

  Message=o&.%+o/donnee_i`.4o%tring00

F

TTne pas oublier de !er"er

Page 37: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 37/45

M.El Kadali Page 3$ sur 45

rd.8lose0

Bc+ier.8lose0

31. Les >c*iers te"tes

a 1criture dans le fichier te*te

string c+e"inO Z[8'\sers\Mali>a\7es>top\suppri"er\ecrit.t&t[

<ile%trea" Bc+ier O ne/ <ile%trea"c+e"inG <ileMode.8reateG<[email protected]

%trea"Yriter /r O ne/ %trea"YriterBc+ier0

/r.Yritete&t=o&1.4e&t0

/r.8lose0

Bc+ier.8lose0

ou bien tout si"ple"ent '

string c+e"in O [ecrit.t&t[

TT!alse' si le Bc+ier e&iste il est re"placé

%trea"Yriter /r O ne/ %trea"Yriterc+e"inG !alse0

/r.YriteLine[bon$our[0

/r.YriteLine[%alut[0

/r.YriteLine[@u revoir[0

/r.8lose0

/r.7ispose0

Page 38: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 38/45

M.El Kadali Page 3( sur 45

. Lecture dans le fichier te*te

string c+e"inO Z[8'\sers\Mali>a\7es>top\suppri"er\ecrit.t&t[

<ile%trea" Bc+ier O ne/ <ile%trea"c+e"inG <ileMode.6penG<ile@ccess.;ead0

%trea";eader rd O ne/ %trea";eaderBc+ier0

c+ar_` buHer O ne/ c+ar_15`

TTrd.;ead0 retourne un octet G elle retourne S1 si Bn de Bc+er

/+ile rd.Pee>0O S10

  rd.;eadbuHerG 5G 150

  TTstring tO buHer.

  Message=o&.%+o/ne/ stringbuHer00. 4o%tring00

F

rd.8lose0

Bc+ier.8lose0

6u bien tout si"ple"ent '

string c+e"in O [ecrit.t&t[

TTouvrir le Bc+ier en "ode ecriture

%trea";eader rd O ne/ %trea";eaderc+e"in0

c+ar_` buHer O ne/ c+ar_15`

TTrd.;ead0 retourne retourne S1 si Bn de Bc+er

/+ile rd.Pee>0 O S10

Page 39: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 39/45

M.El Kadali Page 3+ sur 45

  rd.;eadbuHerG 5G 150

  Message=o&.%+o/ne/ stringbuHer00.4o%tring00

F

rd.8lose0

=I%. BPA

L’ob$ecti! de YP< est de !ournir nos inter!aces les avancées tec+nologi-ues inclues dans le

<ra"eYor> .*et. YP< per"et d’incorporer des docu"entsG des "ulti"édiasG des grap+i-ue 27et 37G des ani"ations et autres.

1 Les bases

indo/ &'8lassO[[email protected]/[

&"lnsO[+ttp'TTsc+e"as."icroso!t.co"T/in!&T255)T&a"lTpresentation[

&"lns'&O[+ttp'TTsc+e"as."icroso!t.co"T/in!&T255)T&a"l[

 4itleO[MainYindo/[ eig+tO[3(5[ Yidt+O[(2([R

?ridR

SS "ettre ses contr9les iciSSR

Label 8ontentO[*o"[ eig+tO[23[ oriXontal@lign"entO[Le!t[ MarginO[))G12G5G5[ *a"eO[label1[ cal@lign"entO[4op[ TR

 4e&t=o& eig+tO[23[ oriXontal@lign"entO[Le!t[ MarginO[15(G12G5G5[ *a"eO[te&t=o&1[ cal@lign"entO[4op[ Yidt+O[125[ TR

=utton 8ontentO[Valider[ eig+tO[2([ oriXontal@lign"entO[Le!t[ MarginO[2#)G15G5G5[ *a"eO[button1[ cal@lign"entO[4op[ Yidt+O[,3[ TR

T?ridR

Yindo/R

Page 40: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 40/45

M.El Kadali Page 4/ sur 45

32. Les conteneurs

2. Le Stac&anel

  ?ridR

  SS par dé!aut lorientation est vertical SSR

  %tac>Panel 6rientationO[oriXontal[R

  =utton *a"eO[b1[ 8ontentO[bouton 1[ Yidt+O[255[RT=uttonR

  =utton *a"eO[b2[ 8ontentO[bouton 2[RT=uttonR

  T%tac>PanelR 

T?ridR

aa.Le 3rapanel

  ?ridR

  SS par dé!aut lorientation est +oriXontal SSR

  YrapPanel 6rientationO[vertical[R

  =utton *a"eO[b1[ 8ontentO[bouton 1[ Yidt+O[255[RT=uttonR

  =utton *a"eO[b2[ 8ontentO[bouton 2[RT=uttonR

  TYrapPanelR 

T?ridR

ab.Le %ontainer 4rid

33. Impression

Page 41: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 41/45

M.El Kadali Page 41 sur 45

34. ultimédia et Impression

=%. ?utres

using %yste"using %yste".8ollections.?enericusing %yste".Yindo/s.<or"susing %yste".4e&tusing %yste".4e&t.;egularE&pressions

na"espace testcer!ti!   static class Progra"    TTT su""aryR

  TTT Point dentrée principal de lapplication.  TTT Tsu""aryR  _%4@4+read`  static void Main0    @pplication.EnableVisual%tyles0  @pplication.%et8o"patible4e&t;endering7e!ault!alse0  @pplication.;unne/ <or"100

 TT les conversions

  TTI"plicit 8onversion  int a O #

  long b  b O a TT I"plicit conversion o! int to long.you cannot i"plicitly. convert a long value to an intG becaust+is conversion ris>s losing in!or"ation

  TTE&plicit 8onversion  int c  long d O (  c O int0d TT E&plicit conversion o! long to int

  TTsing t+e %yste".8onvert 8lass  string possibleInt O [123#[  int count O 8onvert.4oInt32possibleInt0

  TT4ryParse 8onversion'4ryParse "et+od enables you to deter"ine /+et+er t+e conversion /ill succee

be!ore you per!or" t+e conversion.  int nu"ber O 5  string nu"ber%tring O [123#[  i!  int.4ryParsenu"ber%tringG out nu"ber00    TT 8onversion succeededG nu"ber no/ e-uals 123#.  F  else    TT 8onversion !ailedG nu"ber no/ e-uals 5.

Page 42: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 42/45

M.El Kadali Page 42 sur 45

  F

  TTManipulating %trings

  TT8oncatenation by sing t+e Q 6perator  string address O [23[

  address O address Q [G Main %treet[  address O address Q [G =uHalo[

  TT8oncatenation by sing t+e %tring=uilder 8lass  %tring=uilder address1 O ne/ %tring=uilder0  address1.@ppend[23[0  address1.@ppend[G Main %treet[0  address1.@ppend[G =uHalo[0  string concatenated@ddress O address1.4o%tring0

  TTValidating %trings '  TT;egular e&pressions provide a "ec+anis" t+at enables you to validate input. 4+e .*E4 <ra"e/or>  TTprovides t+e %yste".4e&t.;egularE&pressions na"espace t+at includes t+e ;ege& class. ou can use

t+e

  TT;ege& class in your applications to test a string to ensure t+at it con!or"s to t+e constraints o! aregular e&pression.  TT;ege&.IsMatc+ Met+od see i! a string value contains any nu"erical digits.  var te&t4o4est O [+ell5 /5rld[  var regularE&pression O [\\d[ TT \d e&pression /ill "atc+ any nu"eric c+aracters  var result O ;ege&.IsMatc+te&t4o4estG regularE&pressionG ;ege&6ptions.*one0  i!  result0    TT 4e&t "atc+ed e&pression.  F

  string address2 O [23[  bool bl O address2.8ontains[ab[0

  int lg O address2.Lengt+

  string portion O address2.%ubstring3G (0 TTportion contiendra ( caractCres de adress2 en co""ancapar le 3e"e caractCre

  TT 7ate4i"e  7ate4i"e dt O ne/ 7ate4i"e251#G 3G 2(0  string dd O dt.4o%tring[d[0

   4i"e%pan di! O 7ate4i"e.*o/.%ubtractdt0  int diHkour O di!.7ays  double annee O diHkour T 3)(.2(

TT re!   TT=y using t+e re! >ey/ordG you instruct t+e 8L; to pass a re!erence to t+e para"eter and  TTnot $ust t+e value o! t+e para"eter.  void annulerre!  int nb0    nb O 5TT nb retourné gardera la valeur 5  F

Page 43: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 43/45

M.El Kadali Page 43 sur 45

TT6verloaded Met+ods  TT6verloaded "et+ods +ave t+e sa"e na"e but diHerent para"eters  void %top%ervice0    F

  void %top%ervicestring service*a"e0    F

TT7eBning a Met+od /it+ 6ptional Para"eters  TT4+e !ollo/ing code e&a"ple s+o/s +o/ to deBne a "et+od t+at accepts one "andatory para"eter an  TTt/o optional para"eters.  void %top%ervicebool !orce%topG string service*a"e O nullG int serviceId O10    F  TT call "et+od e&a"ple'  var !orce%top O true  %top%ervice!orce%top0  var service*a"e O [<ourt+8oHee.%ales%ervice[

  %top%ervice!orce%topG service*a"e0

  TTre"ar-ue ' Y+en deBning a "et+od t+at accepts optional para"etersG you "ust speci!y all "andatorypara"eters be!ore any optional para"eters.

  TT t+is e&a"le is Incorrect 6ptional Para"eter 7eBnition  void %top%ervicestring service*a"e O nullG bool !orce%topG int serviceId O 10    F

TTsing *a"ed @rgu"ents  %top%ervicetrueG serviceI7' 10  TT re"ar-ue '  TT ] Y+en using na"ed argu"ents in con$unction /it+ optional para"etersG you can easily o"it

para"eters.

  TT ] ou can "i& positional and na"ed argu"ents. o/everG you "ust speci!y all positional argu"entbe!ore any na"ed argu"ents.

TT Met+ods t+at se 6utput Para"eters  TT@ "et+od can pass a value bac> to t+e code t+at calls it by using a return state"ent. I! you need to

return "ore t+an a single value to t+e calling codeG you can use output para"eters to return additional da!ro" t+e "et+od.

  bool Is%ervice6nlinestring service*a"eG out string statusMessage0    var is6nline O <ourt+8oHee%ervices.?et%tatusservice*a"e0  i!  is6nline0    statusMessage O [%ervices is currently running.[  F

  else    statusMessage O [%ervices is currently stopped.[  F  return is6nline  F

  TTInvo>ing a Met+od t+at @ccepts an 6utput Para"eter  var statusMessage O string.E"pty  var is%ervice6nline O Is%ervice6nline[<ourt+8oHee.%ales%ervice[G out statusMessage0

Page 44: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 44/45

M.El Kadali Page 44 sur 45

TTE&ceptions

  try    TT 4ry bloc>.

  F  catc+ _catc+ speciBcation 1`0    TT 8atc+ bloc> 1.  F  catc+ _catc+ speciBcation n`0    TT 8atc+ bloc> n.  F

  TT e&a"ple '  try    F

  catc+ *ull;e!erenceE&ception e&0    TT 8atc+ all *ull;e!erenceE&ception e&ceptions.  F  catc+ E&ception e&0    TT 8atc+ all ot+er e&ceptions.  F  Bnally TT%o"e "et+ods "ay contain critical code t+at "ust al/ays be runG even i! an un+andled

e&ception occurs.    TT 8ode t+at al/ays runs.  F

  TT4+ro/ing E&ceptions  TTou can create an instance o! an e&ception class in your code and t+ro/ t+e e&ception to indicate t+atan e&ception +as occurred.

  var e& O ne/ *ull;e!erenceE&ception[4+e *a"e para"eter is null.[0  t+ro/ e&

TT7ebugging and 4racing  TT4+e 7ebug and 4race classes include "et+ods to /rite !or"at strings to t+e 6utput /indo/ in Visual

%tudioG as /ell as to any ot+er listeners t+at you conBgure.  int nu"ber  8onsole.YriteLine[Please type a nu"ber bet/een 1 and 15G and t+en press Enter[0  string userInput O 8onsole.;eadLine0  [email protected] out nu"ber0G  string.<or"at[nable to parse 5F as integer[G userInput0

  7ebug.YriteLine4+e current value o! userInput is' 5F[G userInput0  7ebug.YriteLine4+e current value o! nu"ber is' 5F[G nu"ber0

TT7eclaring an Enu"  7ay a O 7ay.4+ursday  enu"  $our  lundiG "ardiG "ercrediG $eudi F   $our !avorite7ay O $our.$eudi   $our un$our O  $our01 TT8reating a %truct

Page 45: Cours Événementielle

8/16/2019 Cours Événementielle

http://slidepdf.com/reader/full/cours-evenementielle 45/45

M.El Kadali Page 45 sur 45

  public struct 8oHee    public int %trengt+  public string =ean  public string 8ountry6!6rigin  TT 6t+er "et+odsG BeldsG propertiesG and events.

  F  TTInstantiating a %truct  8oHee coHee1 O ne/ 8oHee0  coHee1.%trengt+ O 3  coHee1.=ean O [@rabica[  coHee1.8ountry6!6rigin O [Kenya[

  TT8reating an Inde&er  public struct Menu    private string_` beverages  TT 4+is is t+e inde&er.  public string t+is_int inde&`

    get  return t+is.beverages_inde&` F  set  t+is.beverages_inde&` O value F  F  TT Enable client code to deter"ine t+e siXe o! t+e collection.  public int Lengt+  get  return beverages.Lengt+ F  F  F  TT@ccessing @rray Ite"s by sing an Inde&er  Menu "yMenu O ne/ Menu0  string Brst7rin> O "yMenu_5`  int nu"ber6!8+oices O "yMenu.Lengt+

  F  FF