[VS2005] Une propriété de type "Path"

Signaler
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
'Lut all,

Après une recherche infructueuse sur le net et ici, je m'en remet une fois de plus à vous.

Dans l'un de mes User Control, je souhaiterais que l'une de ses propriétés représente un fichier xml.

(pas de souci l'utilisateur peu le rentrer à la main mais je trouve cela bof). Je souhaiterais (ce qui serait le mieux) c'est que lorsque l'on veut éditer cette propriété, une boite de dialogue de selection de fichier s'ouvre (CommonDialog).

Ma question est donc: faut il passer par un type de propriété qui m'aurait échapper jusqu'à présent (grande probabilité) ou bien est ce que je vais devoir passer par Designer?

D'avance merci pour vos réponses et en attendant Google is my friend

@+: Ju£i?n
Pensez: Réponse acceptée

3 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Re,
Bon et bien j'ai finit par trouver grâce à un petit coup de pouce de Reflector

Je suis donc passé par une classe dérivant de UITypeEditor
Si quelqu'un connait une manière plus simple. Merci de la partager.

le code:

//La propriété
        [Editor(typeof(XMLFileEditor), typeof(UITypeEditor))]
        public string XMLFile
        {
            get { return _xmlFile; }
            set { _xmlFile = value; }
        }

//La Classe
    public class XMLFileEditor : UITypeEditor
    {
        private OpenFileDialog openFileDialog;

        public override object EditValue(ITypeDescriptorContext context, _
          IServiceProvider provider, object value)
        {
            if (provider != null)
            {
                IWindowsFormsEditorService service = _
                  (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
                if (service == null)
                {
                    return value;
                }
                if (this.openFileDialog == null)
                {
                    this.openFileDialog = new OpenFileDialog();

                }
                if (this.openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    value = openFileDialog.FileName;
                }
            }
            return value;

        }, ----
(Coloration syntaxique automatique par Kenji)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Salut,

Non, implémenter un éditeur est la manière conventionnelle de procéder.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Re,
Ok Merci pour l'info [auteurdetail.aspx?ID=10023 coq].

@+: Ju£i?n
Pensez: Réponse acceptée