Utilisation du composant PropertyGrid

Utilisation du composant PropertyGrid ... c'est tellement simple

Introduction

Le PropertyGrid est ce fameux composant que l'on peut voir dans Visual Studio pour lister les propriétés des contrôles par exemple ...

Dans mon exemple, j'ai créé:

  • 1 Form nommée Form1
  • 1 PropertyGrid nommé PropertyGrid1 sur Form1
  • 1 classe Personne

Tutoriel

Pour utiliser le Property Grid, il faut

1 - glisser un composant PropertyGrid depuis la boite à outils (Tous les Windows Forms) sur la Form désirée

2 - définir une classe qui contiendra toutes les propriétés que le PropertyGrid devra afficher
Pour cela, on peut soit utiliser un diagramme de classes, soit écrire sa classe directement.

Important : faire un import de System.ComponentModel puis définir pour chaque accesseur CategoryAttribute ; en effet c'est la valeur affectée à CategoryAttribute qui créera ou non des catégories.

Voici le code de la classe Personne:

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;

namespace PropertyGridExample
{
    class personne
    {
        private string _nom;
        private string _prenom;
        private bool _celibataire;
        private DateTime _date_naissance;
         
        [CategoryAttribute ( "Informations" ), DescriptionAttribute ( "Nom de la personne" )]
        public string Nom
        {
            get { return _nom; }
            set { _nom = value; }
        }
        [CategoryAttribute ( "Informations" ), DescriptionAttribute ( "Prenom de la personne" )]
        public string Prenom
        {
            get { return _prenom; }
            set { _prenom = value; }
        }
        [CategoryAttribute ( "Informations" ), DescriptionAttribute ( "Date de naissance de la personne" )]
        public DateTime Date_naissance
        {
            get { return _date_naissance; }
            set { _date_naissance = value; }
        }
        [CategoryAttribute ( "Situation" ), DescriptionAttribute ( "Situation  de la personne" )]
        public bool Celibataire
        {
            get { return _celibataire; }
            set { _celibataire = value; }
        }
    }
}

3 - créer une instance de la classe,initialiser et affecter les valeurs désirées pour chaque champ de cet instance
Dans mon exemple, j'appelle la procédure initialiser_propertygrid1() dans l'évènement Form_load

private void initialiser_propertygrid1()
{
    personne opersonne;
    opersonne = new personne ();
    opersonne.Nom = "Romagny";
    opersonne.Prenom = "Jérôme";
    opersonne.Celibataire = true;
    opersonne.Date_naissance = Convert.ToDateTime( "13/03/1976" );
    propertyGrid1.SelectedObject = opersonne;
}

Les champs de type bool disposent d'une ComboBox pour changer la valeur dynamiquement depuis le PropertyGrid

Les champs de type DateTime disposent d'un Control DateTimePicker pour changer la date dynamiquement depuis le PropertyGrid

4 - affecter à la propriété SelectedObject du PropertyGrid l'instance de la classe (voir code ci-dessus procédure initialiser_propertygrid1())

propertyGrid1.SelectedObject = opersonne;

On peut alors basculer de la vue par "catégories" à la vue "alphabétique" sans la moindre ligne de code

Conclusion

Voila avec cela vous avez déjà de bonnes bases pour pouvoir utiliser le composant, sachant qu'en VB.NET c'est quasiment la même chose ;)

++

Ce document intitulé « Utilisation du composant PropertyGrid » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous
A voir également