Les contrôles utilisateur

Slides:



Advertisements
Présentations similaires
L’utilisation des formulaires pour un responsable de Centre Régional.
Advertisements

Mettre en ligne des cartes.
Les profils du SEDA confection de profil avec Agape.
Formation Utilisateur Nouveautés de la V3.2 de PRODIGE Eric Bleuzet Philippe Terme Catherine Chamard-Bois.
Guide de l'enseignant SolidWorks, leçon 1 Nom de l'établissement Nom de l'enseignant Date.
Cours de HTML suite 3. Sommaire...  Les formulaires. Les formulaires.  Structure basique du formulaire, balise. Structure basique du formulaire, balise.
1 Manuel d’utilisation Application Datamédis® sur Pocket PC Propriété PROMEDIS S.A.
Utilisation du logiciel EduStat © Distribution de fréquences simples Les compilations.
CREATION OU RECUPERATION D ’ UN IDENTIFIANT OU D ’ UN MOT DE PASSE DANS GABRIEL, ANGE 1D ET ANGE 2D Cette procédure s’applique dans les cas suivants :
Interface sur laquelle on arrive lorsqu’on atteint le site Tous les champs ci- dessous sont supprimés Liste des clients disponibles Liste des serveurs.
Réaliser un CD lecteur de salon (photos ou vidéos) pouvant être lu
Premiers pas avec PowerPoint
Procédures Framework LDAP
Nouveautés Version 4.1 et mai 2017.
Programmation en C++ Standard Library
AMUE – SIFAC Gestion des services fait sur SIFAC WEB
Voyage dans le logiciel de présentation de la suite libre.
MAGIQ TVA XML 2.0 Editeur: HIGH SYSTEM INFO
Réaliser une opération de contournage en fraisage
Environnement de développement des BD
La gestion des co-produits (niveau de version : C)
I- ANALYSE DU BESOIN / Plan
Utilisation de Windows
Google analytics.
COLLEGE LES GORGUETTES CASSIS
LES TABLEAUX EN JAVA.
Initiation aux bases de données et à la programmation événementielle
7. Créez les questions pour les tests formatifs et sommatifs
Initiation aux bases de données et à la programmation événementielle
8. Mettre les paramètres du test final
JAVA et POO : Notion d'héritage
Javadoc et débogueur Semaine 03 Version A16.
Installer l’application depuis Google Play
Principes de programmation (suite)
Portail Fournisseurs 30 mai 2013 Manuel utilisateur Par Jardiland.
Création d’un formulaire
1ers pas des utilisateurs migrés
Alma - Analytics Formation avancée
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
1.2 dénombrement cours 2.
3- Nouvelles pages d’accueil
Comment créer et administrer un blog Wordpress
Guide Utilisateur. Guide Utilisateur.
Introduction à Internet
Formation sur les bases de données relationnelles.
Gilles BADUFLE À partir d’un PPT modifié du C.A.H.M.
Programmation Android Première application Android
Portail de saisie et de restitution
La facture électronique
Un ordinateur avec un œil !!
Portail de saisie et de restitution
03- Evaluation Access 2003 Cette évaluation comporte des QCM (1 seule réponse) et des Zones à déterminer dans des copies d’écran.
La recherche avancée.
Support de formation Administrateur Notes de Frais
Module 5 : Gestion de l'accès aux ressources à l'aide de groupes
Logiciel de présentation
Elles contiennent des informations autre que géométriques
Le langage C# : Partie 1.
Tableaux croisés dynamiques sous Excel: des outils simples pour une analyse rapide de jeux de données en cytométrie Camille SANTA MARIA Ingénieur d’étude.
Portail de saisie et de restitution
Exploitation de vos données
Support de formation Administrateur Entretiens
Délégation académique pour le numérique éducatif
STS Web Services libres Gérer les services libres
STS Web Services libres Supprimer des services libres
Tapez les détails de votre événement ici
Mathématiques – Problèmes
GUIDE DE PRISE EN MAIN FRONT OFFICE
Transcription de la présentation:

Les contrôles utilisateur Hugo St-Louis Architecture des applications Hiver 2017

Plan de présentation Qu’est-ce qu’un contrôle utilisateur Création d’un contrôle utilisateur dans Visual Studio Utilisation des contrôles utilisateurs Les tags spéciaux TP#5 Exemple tiré de : http://morpheus.developpez.com/usercontrols/

Qu’est-ce qu’un contrôle utilisateur Parfois, il arrive qu’un comportement appliqué sur un composant ou un ensemble de composants .NET soit répété à plusieurs reprises dans l’application. Plutôt que de doubler le code, nous allons créer des Contrôles Utilisateurs(UserControls) qui pourront être réutilisés.

Création d’un contrôle utilisateur dans Visual Studio Pour créer un contrôle utilisateur, vous avez deux options: Soit vous créer un projet de type Bibliothèque de Contrôle Windows Form, WPF, ou autre. L’avantage de cette solution c’est que tous vos contrôles utilisateurs pourront s’exporter dans une DLL. Soit vous ajouter un Contrôle utilisateur dans un projet existant. Par contre, il ne sera pas possible de l’exporter aussi facilement.

Création d’un contrôle utilisateur dans Visual Studio Voir un exemple des deux choix possibles:

Création d’un contrôle utilisateur dans Visual Studio Le résultat d’un contrôle utilisateur donne une fenêtre Windows classique, mais sur laquelle il n’y a pas de bordure. Sur ce formulaire, vous allez pouvoir utiliser toutes les capacités de Visual Studio, et en particulier le glisser/déposer de composants, pour créer votre composant personnalisé.

Création d’un contrôle utilisateur dans Visual Studio À nous de jouer, nous allons créer le contrôle utilisateur suivants dans une bibliothèque.

Utilisation des attributs Si vous voulez pouvoir modifier certaines propriétés de vos UserControls dans la fenêtre "Properties" (Propriétés) de Visual Studio, vous devez utiliser les attributs(MetaTag). Voici une liste, non exhaustive, des attributs qu'il vous est possible d'utiliser: Category Description Browsable DefaultValue DefaultEvent Il est possible de les combiner en les séparant avec une virgule.

Attribut Category Cet attribut (Category)vous permet de définir dans quelle catégorie vous voulez que votre propriété soit placée. En effet, par défaut, la catégorie utilisée est "Misc" mais vous pouvez tout à fait modifier cela: [Category("Configuration")] public String Title { get return this.grpConnexion.Text; } set this.grpConnexion.Text = value;  

 Attribut Description L'attribut Description vous permet d'afficher, dans l'explorateur de propriétés, une petite description relative à la propriété (ou l'événement) sélectionné. Cela peut s'avérer très pratique si vous avez besoin de donner des informations, à l'utilisateur. [Description("Le texte à afficher pour le nom d'utilisateur")] public String NomUtilisateurText { get return this.lblNomUtilisateur.Text; } set this.lblNomUtilisateur.Text = value;

 Attribut Browsable Le dernier attribut dont je voulais vous parler est l'attribut Browsable. Celui- ci vous permet d'indiquer si, dans l'explorateur de propriétés, la propriété sélectionnée peut être modifiée. Dans le cas contraire, elle apparait comme grisée dans l'explorateur. A noter que cet attribut prend en paramètre un booléen, et non pas une chaîne de caractère comme pour les autres attributs. [Browsable(false)] public String MotDePasseText { get return this.lblMDP.Text; } set this.lblMDP.Text = value;

Associer une image à votre UserControl Vous avez la possibilité d'associer une image à votre UserControl, afin de le personnaliser encore plus et de le reconnaitre plus facilement dans la boite à outils. Pour cela, commencez par inclure votre image à votre projet (clique droit sur le projet, puis sélectionner « Ajout" => « Nouvel Item") et, dans les propriétés, positionner « Action de génération" sur "Ressource incorporée". Cela aura pour effet d'incorporer votre image dans la DLL de votre UserControl. [ToolboxBitmap(typeof(LoginPassword), "chemistry.ico")] public partial class LoginPassword: UserControl {

Utilisation du UserControl Première étape, construire la DLL. Deuxième étape, il faut ajouter la DLL dans le projet où on veut l’utiliser. S’il n’apparaît pas automatiquement dans la boîte à outil, ajoutez le à partir de la boîte à outilChoisir les éléments…

Les événements Comme tout contrôle .NET, votre UserControl possède des évènements prédéfinis (Load, Paint, etc...), jusque là, rien de bien nouveau. Il est possible de rendre disponible les événements de votre contrôle.  vous devez avoir au moins deux choses: un délégué pour l'événement le UserControl qui contient la déclaration de l'événement // Déclaration des délégués public delegate void ValidButtonClickHandler(object sender, EventArgs e); public delegate void CancelButtonClickHandler(object sender, EventArgs e);

Les événements le UserControl qui contient la déclaration de l'événement // Déclaration des évènements qui utilisent ces délégués [Category("Configuration"), Browsable(true), Description("Evènement associé au bouton de validation")] public event ValidButtonClickHandler BoutonValidClick;   [Category("Configuration"), Browsable(true), Description("Evènement associé au bouton d'annulation")] public event CancelButtonClickHandler BoutonCancelClick; protected virtual void OnValidButtonClick(EventArgs e) { if (BoutonValidClick != null) BoutonValidClick(this, e); } protected virtual void OnCancelButtonClick(EventArgs e) if (BoutonCancelClick != null) BoutonCancelClick(this, e);

Les événements Il ne reste plus qu’à faire un appel à l’événement qui référence le delegate à partir de l’événement du bouton: private void btnValider_Click(object sender, EventArgs e) { OnValidButtonClick(e); }   private void btnAnnuler_Click(object sender, EventArgs e) OnCancelButtonClick(e);

Les événements Voilà, on peut maintenant l’utiliser dans notre solution.

Les smartTags Les SmartTags sont une des nouveautés de Visual Studio 2005 et le Framework .NET 2.0. Ils représentent une sorte de menu contextuel pour vos contrôles. Pour commencer, créer une classe UserControlActionList qui héritera de System.ComponentModel.Design.DesignerActionList: cette classe contiendra la liste des propriétés qui devront être ajoutées au SmartTag. Dans cette classe, redéfinissons la méthode GetSortedActionItems qui nous permet de récupérer les actions définies par l'utilisateur. A noter que cette méthode vous renvoit une DesignerActionItemCollection (une collection de DesignerActionItem ) et que vous avez à votre disposition, les DesignerActionItem suivants: DesignerActionHeaderItem: Permet d'afficher un nom de groupe de propriétés DesignerActionMethodItem: Permet d'appeler une méthode de l'ActionList DesignerActionPropertyItem: Permet d'afficher/éditer une propriété DesignerActionTextItem: Permet d'afficher une ligne de texte using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Collections.Generic; namespace WindowsFormsControlLibrary1 public class UserControlActionList : DesignerActionList {   using System.Threading.Tasks; using System.Linq; using System.Text; } public UserControlActionList(IComponent component) : base(component) set PropertyDescriptor property = TypeDescriptor.GetProperties(this.Component)["Title"]; get { return ((LoginPassword) this.Component).Title; } // Liste des propriétés à ajouter au SmartTag public String Title property.SetValue(this.Component, value); PropertyDescriptor property = TypeDescriptor.GetProperties(this.Component)["NomUtilisateurText"]; get { return ((LoginPassword) this.Component).NomUtilisateurText; } public String NomUtilisateurText get { return ((LoginPassword) this.Component).MotDePasseText; } public String MotDePasseText PropertyDescriptor property = TypeDescriptor.GetProperties(this.Component)["MotDePasseText"]; public override DesignerActionItemCollection GetSortedActionItems() items.Add(new DesignerActionPropertyItem("NomUtilisateurText", "Définissez le nom d'utilisateur par défaut: ")); items.Add(new DesignerActionPropertyItem("MotDePasseText", "Définissez mot de passe par défaut: ")); items.Add(new DesignerActionHeaderItem("Paramétrage")); items.Add(new DesignerActionPropertyItem("Title", "Définissez le titre du groupe de contrôles: ")); DesignerActionItemCollection items = new DesignerActionItemCollection(); return items;

Les smartTags Une fois que vous avez fait cela, il ne vous reste plus qu'à créer le SmartTag. Cela se fait en créant une classe (par exemple DesignerUserControl), qui hérite de System.Windows.Forms.Design.ControlDesigner. Et voila, vous avez terminé la création de votre SmartTag. Pour l'utiliser, c'est très simple: il vous suffit simplement d'ajouter l'attribut Designer à votre UserControl: public class DesignerUserControl : System.Windows.Forms.Design.ControlDesigner public override DesignerActionListCollection ActionLists // On définit la liste des actions du SmartTag { get DesignerActionListCollection collectionAction = new DesignerActionListCollection(); UserControlActionList designerActionList = new UserControlActionList(this.Control); return collectionAction;   collectionAction.Add(designerActionList); }   [ToolboxBitmap(typeof(LoginPassword), "chemistry.ico")] [Designer(typeof(DesignerUserControl))] [Docking(DockingBehavior.Ask)] public partial class LoginPassword: UserControl {

Les smartTags Talam!

TP#5 Dernier TP!

Questions et réponses