<!-- Slide number: 1 -->

 Institut Supérieur des Etudes Technologique de Bizerte Département Technologies de l’Informatique # Programmation événementielle(C# sous le framework .Net)
 D’après le cours de BEN ROMDHAN Mourad 10/03/2016
Notes:
<!-- Slide number: 2 -->

 # Plan 10/03/2016 Principes de la programmation événementielle
1
Microsoft Visual Studio et la plateforme .NET
2 Environnement et contrôles
3


 Eléments du langage C#
4
La POO en C#
5
Les bases de données
6 Etat de sortie et déploiement d’applications
7 2
Notes: Mon exposé est composé de 6 parties, Je commence dans la 1ère par présenter mon état civil Ensuite je vous présente mon cursus des études suivi par les différents projets et stages que j’ai réalisés. Dans la 4ème partie je vous présente ma expérience professionnelle et dans la 5ème mes différentes activités pédagogiques, Je termine cet exposé par quelques perspectives et ambitions
<!-- Slide number: 3 -->


I- Prog évènementielle: I


Principes de la Programmation évènementielle 3 10/03/2016
<!-- Slide number: 4 --> # I- Prog évènementielle:


Présentation. Définitions. Exemple de programme. 4 10/03/2016
Notes:
<!-- Slide number: 5 -->


1- Présentation: (1/2) Programmation classique : (console)

 1
Entrée de valeur… 2
 UTILISATEUR L’utilisateur fait ce que lui demande l’application. L’application a le contrôle. 5 10/03/2016
Notes:
<!-- Slide number: 6 -->


1- Présentation: (2/2) Prog événementielle : (Interfaces graphiques)

 1 2

 UTILISATEUR On peut à tout moment sélectionner, cliquer, changer de fenêtre ... Application toujours prête à réagir. Application “esclave” de l’utilisateur. L’utilisateur a le contrôle. 6 10/03/2016
Notes:
<!-- Slide number: 7 -->


2- Définitions: (1/4) Objet graphique: Composant système appelé et utilisé par les applications graphiques.
Un évènement: est une action émise par un utilisateur ou un programme sur un objet graphique pour déclencher un traitement. Exemples d’évènements:
 Fenêtre
 Bouton radio
 Cases à cocher
 Zone de texte
 Bouton Fermer une fenêtre, Simple Click sur un bouton, Double Click sur un bouton,
Bouger la souris, Minimiser une fenêtre, ….
7 10/03/2016
Notes:
<!-- Slide number: 8 -->


2- Définitions: (2/4) Un évènement contient des infos dépendant du type d’événement, par exemple, la position (x, y) de la souris pendant le mouvement,…. Une interface de programme Windows est constituée de contrôles avec lesquels l’utilisateur interagit. Les événements sont levés par le système, suite à une action de l’utilisateur sur un contrôle ou par une activité interne. Les événements: des signaux système.
8 10/03/2016
Notes:
<!-- Slide number: 9 -->


2- Définitions: (3/4) Programmation événementielle: programmation fondée sur les événements. Le programme sera défini par ses réactions aux différents événements qui peuvent se produire. L’application se met en attente à des événements.


 9 10/03/2016
Notes:
<!-- Slide number: 10 -->
Publicité


2- Définitions: (4/4) Les composants (objets graphiques) d'une application événementielle interagissent entre eux et avec l'environnement. Ils communiquent en réponse à des événements. L'application a une boucle principale divisée en deux sections : la première section détecte les événements, la seconde les gère.
Evènement


Traitement correspondant Boucle de gestion des évènements 10 10/03/2016
Notes:
<!-- Slide number: 11 -->


3- Exemple de prog évènementielle:
 11 10/03/2016
Notes:
<!-- Slide number: 12 -->
 # II- Ms Visual Studio et la plateforme .NET Visual Studio: présentation Visual Studio: Historique La plate-forme .NET Architecture .net Fonctionnement
12 10/03/2016
Notes:
<!-- Slide number: 13 --> # 1-Présentation: (1/2)
 Microsoft Visual Studio: Environnement de développement créé par Microsoft pour développer des applications qui tournent sous Microsoft Windows. Visual: un outil visuel qui fournit la notion de programmation d'interface graphique (GUI - Graphical User Interface). En GUI on dispose à l'aide de la souris des éléments graphiques (boutons, images, champs de texte, menus déroulants,...) et on prépare le traitement correspondant aux évènements. Utilisation simple des API (Application Programming Interface) Windows: l’ensemble des fonctions et composants systèmes qui peuvent être appelés à partir du code dans les projets. 13 10/03/2016
<!-- Slide number: 14 --> # 1-Présentation: (2/2)
 Visual Studio est un ensemble complet d'outils de développement permettant de générer: Des applications Windows: VB, C++, C#, J#,.. Des applications Web: ASP, ASP.NET, Des Services Web: XML, Des applications mobiles.











 14 10/03/2016
<!-- Slide number: 15 -->
 # 2- Historique: Visual Studio 1.0, 2.0, 3.0 (sous Windows 3.1) Visual Studio 4.0 en 1995 (sous Windows 95 ) Visual Studio 5.0 en 1997 Visual Studio 6.0 en 1998 (sous Windows 98 ) Visual Studio 2002 version 7.0 ('introduction du Framework .NET 1.0) Visual Studio 2003 version 7.1, framework .NET 1.1 Visual Studio 2005 version 8.0, framework .NET 2 Visual Studio 2008 version 9.0, framework .NET 3.5 Visual Studio 2010 version 10.0, framework .NET 4 Visual Studio 2012 version 11.0, framework .NET 4.5 Visual Studio 2013 version 12.0, framework .NET 4.5 Microsoft Visual Studio Express: version allégée gratuite pour des buts éducatifs à partir de 2005.
22 juin 2000, date de la première annonce de « l’initiative .NET » (ou en anglais dot net) par Bill Gates. 15 10/03/2016
<!-- Slide number: 16 --> # 3- La plate-forme .NET: (1/2)
 Appelé en anglais Framework dotnet. Un ensemble de technologies pour développer et utiliser des composants : Formulaires Web Services Web Applications Windows La plus grande évolution chez Microsoft depuis le passage de DOS à Windows. Une bibliothèque de fonctions qui couvre la totalité des API Windows.
16 10/03/2016
<!-- Slide number: 17 --> # 3- La plate-forme .NET: (2/2)
 Support d’un grand nombre de langages. Toutes les fonctionnalités de la plateforme .NET sont disponibles dans tous les langages. Les langages disponibles:
Perl Python Cobol Haskell ML JScript Ada APL Eiffel Pascal Fortran Managed C++ Visual Basic C# J# SmallTalk Oberon Scheme Mercury Oz Objective Caml Delphi … 17 10/03/2016
<!-- Slide number: 18 --> # 4- Architecture .net: (1/10)


1
2 3
4 18
10/03/2016
<!-- Slide number: 19 --> # 4- Architecture .net: (2/10)
 La première Couche CLS:

1 CLS: Composée des spécifications communes à tous les langages. La CLS est une sorte de sous-ensemble minimal de spécifications pour donner un langage commun entre tous les langages de .NET (chaque langage devra trouver ou construire un équivalent valable dans sa syntaxe et son système de type) 19 10/03/2016
<!-- Slide number: 20 --> # 4- Architecture .net: (3/10)
 Common Types System:
 20 10/03/2016
<!-- Slide number: 21 --> # 4- Architecture .net: (4/10)
 *.vb *.cpp *.cs *.jsl *.js *.cob *.? VB C++ C# J# JScript Cobol … Respectent la Common Language Specification (CLS) Common Intermediate Language CIL) Indépendant de la plate-forme hardware 21 10/03/2016
<!-- Slide number: 22 --> # 4- Architecture .net: (5/10)
 La seconde couche:
 2 Ensemble de composants graphiques disponibles dans Visual Studio.NET qui permettent de construire des interfaces homme-machine orientées Web (services Web) ou bien orientées applications classiques avec IHM. Les données sont accédées dans le cas des services Web à travers le protocole XML. 22 10/03/2016
<!-- Slide number: 23 --> # 4- Architecture .net: (6/10)
 La troisième couche: 3
 Constituée d'une vaste librairie de plusieurs centaines de classes et peut être étendue par l’intégration de nouvelles classes. Cette librairie a la même fonction que la bibliothèque des classes de Java. La librairie de classe de .NET Framework est organisée en espaces de nom hiérarchisés comme les paquetages en java. 23 10/03/2016
<!-- Slide number: 24 --> # 4- Architecture .net: (7/10)
 Common Intermediate Language (CIL) Framework Class Library Accessible depuis tous les langages Common Language Runtime (CLR) 24 10/03/2016
<!-- Slide number: 25 --> # 4- Architecture .net: (8/10)
 System.Windows.Forms Design ComponentModel System.Web Services UI Description HtmlControls Discovery WebControls Protocols Caching Security Configuration SessionState System.Drawing Drawing2D Printing Imaging Text System.Data OracleClient OleDb SqlClient OracleTypes Design SqlTypes System.Xml XSLT Serialization XPath System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Remoting Diagnostics Reflection Text Serialization Globalization Resources Threading 25 10/03/2016
<!-- Slide number: 26 --> # 4- Architecture .net: (9/10)
 La quatrième couche:
 4 C’est l'environnement d'exécution commun de tous les programmes s'exécutant dans l'environnement .NET C’est la machine virtuelle .net, similaire à celle du java. Le CLR exécute un bytecode écrit dans un langage intermédiaire CIL ou Common Intermediate Language ( anciennement MSIL) 26 10/03/2016
<!-- Slide number: 27 --> # 4- Architecture .net: (10/10)
 Common Intermediate Language (CIL) Common Language Runtime (CLR) Windows XP Windows 2000 NT 4.0* Windows 98, Me PocketPC* … Implémentée par MS 27
<!-- Slide number: 28 --> # 5- Fonctionnement: (1/5)
 Rappelons qu'un ordinateur ne sait exécuter que des programmes écrits en instructions machines compréhensibles par son processeur central. La famille des langages évolués (ou langages de haut niveau) ne sont pas compréhensibles immédiatement par le processeur de l'ordinateur. Il est donc nécessaire d'effectuer une "traduction" d'un programme écrit en langage évolué afin que le processeur puisse l'exécuter. Les deux voies utilisées pour exécuter un programme évolué sont la compilation ou l'interprétation : 28 10/03/2016
<!-- Slide number: 29 --> # 5- Fonctionnement: (2/5)
 Un compilateur du langage X pour un processeur P, est un logiciel qui traduit un programme source écrit en X en un programme cible écrit en instructions machines exécutables par le processeur P. Un interpréteur du langage X pour le processeur P, est un logiciel qui ne produit pas de programme cible mais qui effectue lui-même immédiatement les opérations spécifiées par le programme source. 29 10/03/2016
<!-- Slide number: 30 --> # 5- Fonctionnement: (3/5)
 Notion de pseudo-machine: pseudo-machine ou p-machine c’est un processeur virtuel. Le processeur P n'est pas une machine qui existe physiquement mais un logiciel simulant (ou interprétant) une machine réelle. pseudo-code (byteCode): code résultant de la traduction du programme source par le compilateur en instructions de la pseudo-machine. La p-machine standard peut ainsi être implantée dans n'importe quel ordinateur physique à travers un logiciel qui simule son comportement; un tel logiciel est appelé interpréteur de la p-machine. 30 10/03/2016
Publicité
<!-- Slide number: 31 --> # 5- Fonctionnement (4/5)
 Donc dans le cas d'une p-machine le programme source est compilé, mais le programme cible est exécuté par l'interpréteur de la p-machine. Tous les langages de la plateforme.NET fonctionnent selon ce principe.(p-machine est incluse dans le CLR)
 compilateur (JIT) P-Machine
 Compiler en code natif
 bytecode
 Compiler en code CIL public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } }
 public static void Main(String[] args ) { String usr; FileStream f; StreamWriter w; try { usr=Environment.GetEnvironmentVariable("USERNAME"); f=new FileStream(“C:\\test.txt",FileMode.Create); w=new StreamWriter(f); w.WriteLine(usr); w.Close(); } catch (Exception e){ Console.WriteLine("Exception:"+e.ToString()); } }

 Source code CIL
 compilateur du langage utilisé C# J# VB Cobol …
 Code Executable .exe P-Physique 31 10/03/2016
<!-- Slide number: 32 --> # 5- Fonctionnement (5/5)

 32 10/03/2016
<!-- Slide number: 33 --> # III- Environnement & Contrôles iii Environnement et Contrôles 33 10/03/2016
<!-- Slide number: 34 --> # III- Environnement & Contrôles Environnement. Formes. Contrôles de Base. Contrôles avancés. 34 10/03/2016
<!-- Slide number: 35 --> 1- Environnement: (1/9) Le point de départ d'une application C#, c'est une solution. Une solution est un fichier *.sln contenant les informations de la solution. Dans une solution C#, nous pouvons insérer nos projets. Une même solution peut contenir plusieurs projets. Dans chaque projet, on peut en rassembler plusieurs dizaines de formulaire ou « form ». Chaque formulaire sera sauvegardé dans un fichier différent, dont l'extension sera *.cs. Il faut noter que c'est dans ces fichiers *.cs que se trouve le code proprement dit
<!-- Slide number: 36 --> # 1- Environnement: (2/9) Nouveau projet:

36 10/03/2016
<!-- Slide number: 37 --> # 1- Environnement: (3/9)

<!-- Slide number: 38 --> # 1- Environnement: (4/9)

Barre de menu et barre d’outils
Affichage des ressources, zone de travail..
Zone de déboguage
10/03/2016 38
<!-- Slide number: 39 --> # 1- Environnement: (5/9) Compilation et exécution d’un programme C# sous VS.net: (débogage) En programmation on rencontre trois types d’erreurs qui sont : * Les erreurs de syntaxe * Les erreurs d’exécution * Les erreurs de logique
La compilation consiste à chercher les erreurs et générer l’exécutable de l’application. Le débogage est la recherche des bugs (erreurs). Pour déboguer, on utilise: Pour démarrer et arrêter l'exécution, on utilise les boutons suivants:

 39 10/03/2016
<!-- Slide number: 40 --> # 1- Environnement: (6/9) Détection des erreurs: Si le programme ne contient pas des erreurs, alors après la génération et dans la zone de débogage le message suivant sera affiché: « La génération a réussi » Dans le cas contraire on trouve la liste des erreurs dans la zone de débogage:



40 10/03/2016
<!-- Slide number: 41 --> 1- Environnement: (7/9) Les erreurs utilisateur: Il faut toujours vérifier ce que fait l'utilisateur et prévoir toutes les possibilités. Exemples :Si je demande à l'utilisateur de tapez un nombre entre 1 et 10, il faut: Vérifier qu'il a tapé quelque chose. Que c'est bien un chiffre (pas des lettres). Que le chiffre est bien entre 1 et 10. Sinon il faudra reposer la question. Capturer les erreurs avec Try – Catch try { // Appel de la fonction susceptible de générer l'exception } catch (Exception e) { // traiter l'exception e } // instruction suivante 41 10/03/2016
<!-- Slide number: 42 --> 1- Environnement: (8/9) Les erreurs utilisateur: Exemples : try { int i1 = int.Parse("abcd"); Console.WriteLine(i1); } catch (Exception e) { Console.WriteLine("Erreur :"+e.Message); }
<!-- Slide number: 43 --> 1- Environnement: (9/9) Génération de fichier executable: La génération de l’exécutable s’effectue à travers le menu « Générer » qui propose comme possibles options la « Génération de la solution » ou sa « Régénération ».
qu’une ou plusieurs Dll (Dynamic Link Library) sont générées et placées dans un dossier situé à la racine du projet et qui porte le nom de Bin, dépendamment de l’option de compilation choisi l’exécutable sera plus spécifiquement déployé dans un sous dossier du dossier BIN intitulé Debug ou Release.
 43 10/03/2016
<!-- Slide number: 44 --> # 2- Les Forms: (1/7)
 Elle correspondent aux fenêtres ou 'formulaires‘.
Pour chaque form est associé deux fichiers: NomForm.cs.deseigner: généré automatiquement par le concepteur de vue NomForm.cs: permet d’écrire la logique du formulaire, les traitements des actions …
 Code source de la Form Graphique de la Form (design)
 44 10/03/2016
<!-- Slide number: 45 --> # 2- Les Forms: (2/7)
 Partial: la classe est définie à plusieurs endroits InitializeCompnent(): créée dans le fichier Form1.Designer.cs 45 10/03/2016
<!-- Slide number: 46 --> # 2- Les Forms: (3/7) Proprietés: Propriété (ou bien attribut): Information qui caractérise la fenêtre. La fenêtre possède des propriétés qui peuvent être modifiées en mode design dans la fenêtre 'Propriétés' à droite ou par du code. Exemples:
 Name :Nom du formulaire. (Abréviation frm: (exp: frmClient) Text : Texte qui apparaîtra dans la barre de titre en haut. Icon : Permet d’associer à la Form un fichier icône. WindowState : Donne l’état de la fenêtre : Plein écran(FormWindowState.Maximized), normale(FormWindowState.Normal), dans la barre de tache(FormWindowState.Minimized). 46 10/03/2016
<!-- Slide number: 47 --> # 2- Les Forms: (4/7) Exemples propriétés:
 StartPosition : Permet de choisir la position de la fenêtre lors de son ouverture. (Fenêtre au centre de l’écran ? à la position lors de la conception. MinSize et MaxSize: Donne les dimensions minimums et maximums que l'on peut utiliser pour redimensionner une fenêtre. FormBorderStyle: Permet de choisir le type des bords de la fenêtre : sans bord (None), bord simple (FixedSingle)ne permettant pas à l’utilisateur de modifier la taille de la fenêtre, bord permettant la modification de la taille de la fenêtre (Sizable) ….
47 10/03/2016
<!-- Slide number: 48 --> # 2- Les Forms: (5/7) Méthodes: Appelé aussi opération, c’est une action faite par la Form. Exemple: .Show(): ouvre le formulaire de manière non bolcquante (le charge en mémoire s’il n’est pas encore chargé) .ShowDialog(): ouvre le formulaire en mode modal .Close(): permet de fermer le formulaire. .Hide(): rend la fenêtre invisible mais reste en mémoire. …
 48 10/03/2016
<!-- Slide number: 49 --> # 2- Les Forms: (6/7) Evénements: Formulaire a un cycle de vie Déclencher des événements spécifiques: Evénement load: correspond à la création du formulaire en mémoire, se lève quand la méthode show ou showDialog est appelée la 1ière fois. Evènement Activated: déclenché lorsque le formulaire reçoit le focus. Evènement Deactivate : déclenché lorsque le formulaire perd le focus. Evènement FormClosing: levé lors de l’appel de la méthode Close ou click sur le bouton de fermeture du formulaire vérifier et valider les données de l’utilisateur avant fermeture ( annuler la fermeture par e.cancel=true;) 49 10/03/2016
<!-- Slide number: 50 --> # 2- Les Forms: (7/7) Modification du formulaire de démarrage: Formulaire de démarrage: celui qui est ouvert par défaut lorsque l’application est lancée Classe instanciée dans le fichier Program.cs. Changer l’appel de la méthode Run par instancier le formulaire voulu

50 10/03/2016
<!-- Slide number: 51 --> # 3- Les contrôles de base: (1/9)
 Les MessageBox. Les boutons. Les TextBox. Les labels. Les Cases à cocher. Les Contrôles 'liste‘ Regroupement de contrôles. MainMenu ContextMenu. ToolBar StatusBar Image. 51 10/03/2016
<!-- Slide number: 52 --> # 3- Les contrôles de base: (2/9) Les MessageBox: La méthode Show de la classe MessageBox affiche un message dans une boîte de dialogue, attend que l'utilisateur clique sur un bouton (Ok,Oui-Non..), puis retourne une information qui indique le bouton cliqué par l'utilisateur. Reponse = MsessageBox.Show (Texte, titre,TypeBouton, icone) Texte: Obligatoire. message de la boîte de dialogue. Titre: titre de la boîte de dialogue. TypeBoutons: le nombre et le type de boutons à afficher :
| Valeur | Description | | --- | --- | | MessageBoxButtons.OKOnly | Un seul bouton ‘Ok’ | | MessageBoxButtons.YesNo | Deux boutons ‘Oui’ ‘Non’ | | MessageBoxButtons.OkCancel | ‘Ok’ et ‘Annuler’ | | MessageBoxButtons.AbortRetryIgnore | ‘Annule’ ‘Recommence’ ‘Ignore’ | 52 10/03/2016
<!-- Slide number: 53 --> # 3- Les contrôles de base: (3/9)
 Icone: le style d'icône à utiliser : MessageBoxIcon.Critical MessageBoxIcon.Exclamation MessageBoxIcon.Question MessageBoxIcon.Information
 Reponse: Objet de la classe DialogResult
Exemple:

 53 10/03/2016
<!-- Slide number: 54 --> # 3- Les contrôles de base: (4/9) Les boutons: Composant de base pour les formulaires, il sert à exécuter une action.

 Name: est utilisé pour lui donner un nom explicite (Abréviation btn) FlatStyle: donne un aspect au bouton (Flat, standard, System) Text :contient le texte a afficher sur le bouton. ForeColor: correspond à la couleur de ce texte. BackColor: étant la couleur du fond. TextAlign: permet de positionner le texte dans le bouton. Image: contient le nom de l’image à afficher sur le bouton

 54 10/03/2016
<!-- Slide number: 55 --> # 3- Les contrôles de base: (5/9) Les Textbox: Contrôles permettant de saisir du texte.

 Name: est utilisé pour lui donner un nom explicite (Abréviation txt) Text :permet aussi de modifier le texte visible dans le contrôle Multiline : autorise ou non l’écriture sur plusieurs lignes. Scrollbars : fait figurer une barre de défilement horizontale ou verticale (ou les deux) PaswordChar : crypte le texte entré sous forme d’étoiles. MaxLength : limite le nombre de caractères qu’il est possible de saisir. TextBox1.MaxLength= 3 'limite la saisie à 3 caractères. TextBox1.MaxLength= 0 'ne limite pas la saisie. TextLength: donne la longueur du texte 55 10/03/2016
<!-- Slide number: 56 --> # 3- Les contrôles de base: (6/9) Les Labels: On en a déjà utilisé pour afficher du texte non modifiable par l'utilisateur.
Les contrôles Label sont généralement utilisés pour fournir un texte descriptif à un contrôle.
Publicité


 Name: est utilisé pour lui donner un nom explicite (Abréviation lbl) Text :permet aussi de modifier le texte visible dans le contrôle Font: Chnge le font du texte. Alignement: permet de définir l'alignement du texte dans l'étiquette (centré, à droite, à gauche), BorderStyle: permet de mettre une bordure (un tour) ou non.. 56 10/03/2016
<!-- Slide number: 57 --> # 3- Les contrôles de base: (7/9) Les cases à cocher: Il y a 2 sortes de case à cocher: Les CheckBox. (abréviation pour name, cb) Les " cases à cocher " (CheckBox): utilisées pour donner à l’utilisateur la possibilité de choisir plusieurs cas parmi un ensemble de cas.
Les RadioButton (abréviation pour name, rb) Les " Bouton radio" (RadioButton): utilisées pour donner à l’utilisateur la possibilité de choisir un seul cas parmi un ensemble de cas.
Chacked: Sa valeur change de False à True si la case est cochée.



 57 10/03/2016
<!-- Slide number: 58 --> # 3- Les contrôles de base: (8/9) Les Contrôles Listes:
 Il y a 2 sortes de listes: Les ListBox. Affiche une liste d'éléments (d'objets) dans laquelle l'utilisateur peut faire un ou plusieurs choix. La listBox contient une collection d'"Item": Les ComboBox. Elles peuvent être déroulantes ou déjà déroulée: c’est-à dire qu’on ne voit qu’un seul élément de la liste à la fois, et qu’il faut cliquer sur la flèche du côté pour " déplier " la liste, ou bien que la liste est déjà visible.


 58 10/03/2016
<!-- Slide number: 59 --> # 3- Les contrôles de base: (9/9)
 59 10/03/2016
<!-- Slide number: 60 --> # 4- Les contrôles avancés (1/4): Menu: Utiliser le contrôle MenuStrip pour créer un menu Un MenuStrip contient une collection de contrôles ToolStripMenuItem Ajouter & avant un caractère du titre du menu pour pouvoir accéder au menu à partir du clavier avec Alt-caractère (ici Alt-F) Utiliser le contrôle ContextMenuStrip pour pouvoir afficher un menu si on clique sur le bouton droit d’un élément de l’application

 60 10/03/2016
<!-- Slide number: 61 --> # 4- Les contrôles avancés (2/4): Conteneurs: Permet de regrouper d’autres contrôles La modification des propriétés d’un conteneur peut entraîner la modification des propriétés des contrôles qu’il contient Exemple: Panel, GroupBox, TabControl… TabControl: permet de grouper d’autres conteneurs sous forme d’onglets dans la collection TabPages
 61 10/03/2016
<!-- Slide number: 62 --> 4- Les contrôles avancés (3/4):

 Composant Timer : est non visible dans l’interface:
Quelques propriétés d'un Timer intéressantes : Interval : entier représentant la durée (exprimée en millisecondes) entre deux tics. Par défaut cette durée vaut 100ms. Start : méthode qui démarre le Timer. Stop : méthode qui arrête le Timer. Tick : gestionnaire d'évènements qui lance un évènement à chaque tic.

<!-- Slide number: 63 --> 4- Les contrôles avancés (4/4):
 Variateurs ScrollBar:
Variateur horizontal (HScrollBar)
Variateur vertical (VScrollBar)
Incrémenteur (NumericUpDown)
Rôle: choisir une valeur dans une plage de valeurs entières symbolisée par la "bande" du variateur sur laquelle se déplace un curseur. La valeur du variateur est disponible dans sa propriété Value. Valeurs aux extrémités : propriétés Minimum et Maximum, par défaut 0 et 100.
L'événement principal du variateur est celui qui signale un changement de valeur : l'événement Scroll.



<!-- Slide number: 64 -->
 5- Gestion d'évènements (1/4) Principe: On attache un gestionnaire d'évènements ("event handlers") à un évènement (on dit que l'on s'abonne à l'évènement) en spécifiant une méthode. Cette méthode est appelée lorsque l'évènement est déclenché. Exemple: Objet= bouton + evènement = double-clique cela va créer un gestionnaire d'évènements. code généré (par le double-clic) dans Form1.Designer.cs : this.myTestButton.Click += new System.EventHandler(this.myTestButton_Click);
La propriété Click de mon bouton myTestButton est un gestionnaire d'évènements, cela signifie que des méthodes vont être appelées par myTestButton à chaque fois que je clique dessus, la méthode appelée est myTestButton_Click. 64 10/03/2016
<!-- Slide number: 65 --> 5- Gestion d'évènements (2/4) Du code a aussi été généré automatiquement dans Form1.cs : private void m_myTestButton_Click(object sender, EventArgs e) { } Cela définit une fonction privée, qui ne retourne rien et prend en paramètres deux choses : un objet de type " object " nommé sender (ici c'est myTestButton) ; un objet de type "EventArgs" nommé e (pour "event") contenant des informations sur l'évènement. Exemple: private void myTestButton_Click(object sender, EventArgs e) { myTestButton.Text = "Bouton cliqué !"; }
<!-- Slide number: 66 --> 5- Gestion d'évènements (3/4) Exemples d’événements: Click: l’utilisateur clique sur le contrôle DoubleClick: l’utilisateur double-clique sur le contrôle GotFocus: le contrôle reçoit le focus LostFocus: le contrôle perd le focus Move: l’objet et déplacé Paint: l’objet est redessiné TextChanged: la propriété Text a été modifié KeyPress: Une touche clavier (ayant un code ASCII) est enfoncée KeyUp et KeyDown: la touche les touches Alt, Ctrl, Suppr ou Shift ont été enfoncées ou relâchées Validating: est le levé quand le contrôle perd le focus et avant de le passer au contrôle suivant, Validated: si la validation s’est bien passée avec validating , l’évènement Validated est déclenché permettant d’effectuer toute action avec les données validées.
<!-- Slide number: 67 --> 5- Gestion d'évènements (4/4) Evénements Souris: Les événements survenant lors d'un déplacement de la souris sur le formulaire ou sur un contrôle
Les événements survenant lors d'un glisser / lâcher (Drag'nDrop)
MouseEnter: la souris vient d'entrer dans le domaine du contrôle MouseLeave la souris vient de quitter le domaine du contrôle MouseMove la souris bouge dans le domaine du contrôle MouseDown Pression sur le bouton gauche de la souris MouseUp Relâchement du bouton gauche de la souris
 DragDrop l'utilisateur lâche un objet sur le contrôle DragEnter l'utilisateur entre dans le domaine du contrôle en tirant un objet DragLeave l'utilisateur sort du domaine du contrôle en tirant un objet DragOver l'utilisateur passe au-dessus domaine du contrôle en tirant un objet

<!-- Slide number: 68 --> # IV- Elément du langage C# IV
 Eléments du Langage C# 68 10/03/2016
<!-- Slide number: 69 -->
 IV- Eléments du langage C#: Les types. Les opérateurs. Les chaînes de caractères. Les conversions de types Les énumérations Les tableaux La classe Array Les collections Les structures Les instructions de contrôle Les méthodes
69 10/03/2016
<!-- Slide number: 70 --> # 1- Les Types: (1/3)
 C# est un langage fortement typé, c'est-à-dire que toutes les opérations sur des variables sont effectuées en tenant compte de leur type.
Pour allouer de la mémoire à une variable, on crée une instruction avec d’une part le type et d’autre part le nom de la variable: type nom_variable;
C# supporte deux sortes de types:
Les types valeur qui incluent les types simples (char, int..), les types enum (énumérations) et les types struct (structures) Les types référence qui incluent les types class (classes), interface (interfaces), delegate (délégués) et array (tableaux) 70 10/03/2016
<!-- Slide number: 71 --> | Classe | Alias | Octets | Valeurs codées | | --- | --- | --- | --- | | System.SByte | sbyte | 1 | -128 à 127 | | System.Byte | byte | 1 | 0 à 255 | | System.Int16 | short | 2 | -32768 à 32767 | | System.Int32 | int | 4 | -2147483648 à 2147483647 | | System.Uint32 | uint | 4 | 0 à 4294967295 | | System.Int64 | long | 8 | -9223372036854775808 à 9223372036854775807 | | System.Single | float | 4 | -3,4E+38 à 3,4E+38 | | System.Double | double | 8 | -1,79E+308 à 1,79E+308 | | System.Decimal | decimal | 16 | -7,9E+29 à 7,9E+29 | | System.Char | char | 2 | Caractère Unicode (UTF-16) | | System.Boolean | bool | 4 | Valeur true ou false | | System.String | string | \* | Chaîne de caractères | 71 10/03/2016
<!-- Slide number: 72 --> # 1- Les Types (3/3):
 Exemples: object o = null; string s = "bonjour"; sbyte val = 24; short val = 24; int val = 24; byte val1 = 24; ushort val1 = 24; Lors de l'utilisation de constantes littérales un suffixe peut être utilisé Exemples: long val1 = 24; | long val2 = 54L; uint val1 = 24; | uint val2 = 54U; float val = 1.45F; double val1 = 1.45; |double val2 = 3.23D; 72 10/03/2016
<!-- Slide number: 73 --> # 2- Les Opérateurs
 Pour traiter les variables, on utilise des opérateurs. Voici les opérateurs dans leur ordre de priorité | Opérateur C# | Signification | | --- | --- | | Opérateurs de Calculs | Ces opérateurs permettent de faire des calculs | | \* | Multiplication. | | / | Division. | | % | Modulo. | | + | Addition. | | - | Soustraction. | | Opérateurs de Tests | retournent des booléens (vrai ou faux) | | is | Teste le type d’un objet | | < | Inférieur à. | | > | Supérieur à. | | <=,>= | Inférieur ou égal, supérieur ou égal. | | != | Différent de. | | == | Est égal à | 73
<!-- Slide number: 74 --> 2- Les Opérateurs (1/2)
 | Les opérateurs de Logique | Ces opérateurs traitent des variables et en retournent une. | | --- | --- | | && | ET logique (vrai si tous les membres sont vrai) | | || | OU logique (vrai si au moins un des membres est vrai) | | ?? | Retourne l’opérande de gauche si non-null ou bien celui de droite. | | Cond ? var1 : var2 | Renvoie var1 si cond est vrai ou alors var2 | | Les opérateurs d’Attribution | Ces opérateurs permettent d’attribuer une valeur à une variable | | = | Attribution (permet de donner une valeur à une variable). | | +=, -=,\*=,/=,%=,&=,|= | Permet de contracter la variable de l’opérateur et de l’attribution Exemple : a += b ↔ a = a + b | | Incrémentation | Ces opérateurs réattribuent à une variable sa valeur modifiée. | | ++ | Ajoute 1 à la valeur. Exemple : i ++ ↔ i = i + 1 | | -- | Enlève 1 à la valeur i - - ↔ i = i – 1 |
<!-- Slide number: 75 --> 2- Les opérateurs (2/2):
 Exemple:
int a; //on déclare a de type int int b = 5; // on déclare b et on lui attribue la valeur 5 a = 0; // on attribu la valeur 0 dans a TextBox1.Text ="a= " + a.ToString() + "\t b= " + b.ToString(); a += a + ++b; // b=b+1; a=a+a+b; TextBox2.Text="a= "+a.ToString()+"\tb= " + b.ToString(); a /= b; // a=a/b a -= 2*b++*a; // a=a-2*b*a; b+=1; TextBox3.Text ="a=\t"+a.ToString()+"\nb=\t" + b.ToString();
a= 0 b= 5 a= -11 b= 7 a= 6 b= 6 TextBox1 TextBox2 TextBox3 75 10/03/2016
<!-- Slide number: 76 --> 3- Les chaînes de caractères (1/6)
 En C#, tout ce qui est entre guillemets est considéré comme une chaîne. string MyString = "Une chaine";
Exemple:
les valeurs des variables sont les suivantes : My Integer est =10 car 5+5=10. Alors que la chaine MyString = “55”.
string MyString = "5" + "5"; int MyInteger = 5 + 5;
76 10/03/2016
<!-- Slide number: 77 --> 3- Les chaînes de caractères (2/6)
 Comparaison de deux caractères Soient deux caractères C1 et C2. Il est possible de les comparer avec les opérateurs <, <=, ==, !=, >, >= Deux caractères sont comparés à partir de leurs codes ASCII. On rappelle que selon l'ordre ASCII on a les relations suivantes : espace < .. < '0' < '1' < .. < '9' < .. < 'A' < 'B' < .. < 'Z' < .. < 'a' < 'b' < .. <'z‘ Comparaison de deux chaînes de caractères Elles sont comparées caractère par caractère. La première inégalité rencontrée entre deux caractères induit une inégalité de même sens sur les chaînes. Exemples : "Chat« et "Chien" 'C' = 'C' , 'h' = 'h' , 'a' < 'i' "Chat" < "Chien". "Chat" et "Chaton". "Chat" < "Chaton" :la chaîne épuisée est déclarée la plus "petite" 77 10/03/2016
<!-- Slide number: 78 --> 3- Les chaînes de caractères (3/6)
 Fonctions de comparaison de deux chaînes caractères On peut utiliser ici les opérateurs relationnels <, <=, ==, !=, >, >= ou des méthodes de la classe String :
Ci-dessus, la variable i aura la valeur : 0 si les deux chaînes sont égales, 1 si chaîne n°1 > chaîne n°2 et -1 si chaîne n°1 < chaîne n°2 La variable egal aura la val