Cours Événementielle
-
Upload
malika-elkadali -
Category
Documents
-
view
225 -
download
0
Transcript of 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............................................................................................................................
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............................................................................................................................................
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…
•
•
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';
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
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
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
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
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
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
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.
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 '
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){
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.
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[
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.
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
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
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é.
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é
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
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
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
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 %
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);
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.
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;
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.
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;)
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"();
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);
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;
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
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
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[
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
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
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
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
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
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.
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
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
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
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