lang:csharp:ihm:form:propertygrid
Introduction
PropertyGrid
affiche les propriétés d'une instance d'une classe.
Une propriété, c'est avec get/set. Dans sa version minimaliste :
public string Prop { get; set; }
Personnaliser l'affichage d'un attribut
Les annotations ci-dessous doivent se mettre dans la partie la plus basse de la hiérarchie de l'héritage. Le mettre dans une interface ne sert à rien. Il faut les mettre dans la classe qui l'implémente. Ce commentaire n'est valable que pour le composant PropertyGrid
. Dans le cas d'un DataGridView
, c'est les annotations de la classe/interface la plus haute qui est prise en compte.
Afficher l'attribut
[Browsable(true)]
Rendre l'attribut non-éditable
[ReadOnly(true)]
Nom de la catégorie
[Category("Commun")]
Nom public de l'attribut
Ce nom s'affiche aussi en haut d'une colonne d'un DataGridView
.
[DisplayName("Mon nom")]
Aide sur l'attribut
[Category("Description perso")]
Attribut de type fichier
Permettre l'édition du champ via un OpenFileDialog
.
[Editor(typeof(OpenFileEditor), typeof(UITypeEditor))] internal class OpenFileEditor : UITypeEditor { private readonly OpenFileDialog ofd = new OpenFileDialog(); public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; } public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { ofd.FileName = value.ToString(); ofd.Filter = "Text File|*.txt|All Files|*.*"; if (ofd.ShowDialog() == DialogResult.OK) { return ofd.FileName; } return base.EditValue(context, provider, value); } }
lang/csharp/ihm/form/propertygrid.txt · Dernière modification : 2017/01/06 15:36 de root