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

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 3 sept. 2007 à 08:59
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 10 sept. 2007 à 08:00
'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

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 sept. 2007 à 08:20
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
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 sept. 2007 à 22:31
Salut,

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

/*
coq
MVP Visual C#
CoqBlog
*/
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 sept. 2007 à 08:00
Re,
Ok Merci pour l'info [auteurdetail.aspx?ID=10023 coq].

@+: Ju£i?n
Pensez: Réponse acceptée
0
Rejoignez-nous