Utilisation du composant PropertyGrid ... c'est tellement simple
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 ...
pour utiliser le Property Grid ,il faut
(dans mon exemple j'ai créer :
- 1 form nommée form1
- 1 propertyGrid nommé PropertyGrid1 sur form1
- 1 classe personne
)
>>
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 ecrire 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
code classe Personne.cs
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 procedure 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 dynamiquementdepuis le PropertyGrid

>> les champs de type DateTime disposent d'un controle 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 procedure initialiser_propertygrid1())
propertyGrid1.SelectedObject = opersonne;
on peut alors basculer de la vue par "catégories" à la vue "alphabetique" sans la moindre ligne de code
Voila avec cela vous avez deja de bonnes bases pour pouvoir utiliser le composant, sachant qu'en VB.NET c'est quasiment la même chose ;)
++