IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

usercontrol et liste de propriété


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 53
    Points : 37
    Points
    37
    Par défaut usercontrol et liste de propriété
    bonjour, voici mon problème

    Je suis entrain de crée des UserControl entièrement personnaliser que je met dans ma toolbox me permettant ainsi dans mes application d'effectuer des drag and drop.

    Lorsque je place ce UC, la liste de ces propriétés apparaissent, et la je bloque sur deux choses :
    - Comment cacher des propriété qui sont par défaut comme Text ?
    - Pour mes propriétés que j'ai défini moi même, j'aimerais proposer une liste de choix possible à l'utilisateur. Par exemple un élément Color va afficher une palette de couleur, moi je voudra afficher par exemple (1,2,3,4)

    J'ai trouvé sur internet qu'il fallait crée un type Enum mais la propriété n'apparaît pas dans la liste car elle ne possede pas d'accesseur-mutateur et il m'est impossible d'en crée un comme une simple propriété dite "classique"



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // Ceci affiche bien la propriété Color dans la liste avec la palette
    private Color borderColor;      
    public Color BorderColor
    {
          get { return borderColor; }
          set 
          { 
                borderColor = value;
                Invalidate();
          }
    }
     
    //ceci n'affiche rien dans la liste
      public enum ValeursPossibles : int
      {
        Un = 1,
        Deux = 2,
        Trois = 3
      }
    Voila, je vous remercie d'avance

    Ps 1: J'ai aussi le même problème/besoin concernant les structures

    Ps 2 :J'ai lu rapidement deux, trois petites choses sur ce que l'on apelle les smartags mais je tiens à préciser que je ne peut les utiliser car j'utilise le compact framework

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pour afficher ou cacher une propriété les attributs suivant sont utiles
    system.Componentmodel.browsable (afficher ou non)
    system.componentmodel.designerserializationvisibility (enregistrer ou non la valeur dans le fichier designer créé par "visual studio")

    pour redéfinir ces attributs pour des propriétés hérités je pense qu'il est obligatoire de faire une surcharge de celles ci ...


    une enum n'est pas une porpriété, c'est un peu comme un type
    donc en plus de définir l'enum avec les valeurs que tu veux, il faut définir une propriété de type nom_de_l'enum

    dans visual studio sur le framework normal, on peut créer des classes héritant de UITypeEditor
    je viens de créer un projet smart device pour voir, il semblerait que ca soit aussi possible d'en avoir
    en fait dans le propertygrid, chaque propriété peut utiliser un editeur spécial
    par exemple, pour un string on peut taper du texte, et pour une couleur, on a un petit bouton qui fait apparaitre la liste des couleurs

    en héritant de uitypeeditor on peut choisir si on édite sous forme de texte, si on a une fleche vers le base ou un bouton avec "..." dedans
    ensuite on récupère l'évènement de clic sur le bouton fleche ou "..." et peut choisir d'afficher des valeur, un usercontrol, ou meme une form
    par exemple pour la propriété anchor, un éditeur sous forme de usercontrol avec 4 machins sélectionnable apparait, ce usercontrol s'occupe d'afficher une valeur et d'en retourner une selon la sélection

    ensuite il faut spécifier à tel type d'utiliser toujours tel éditeur ou à une propriété d'une classe d'utiliser tel éditeur


    les smarttags (ou classe designer) c'est autre chose, c'est la petite flèche qui apparait en haut à droit d'un control en mode design et qui permet de mettre les choses les plus courantes (propriétés, méthodes et autre !)
    ca aussi ca se code en .net et on peut en faire ce qu'on veut
    là aussi dans un projet de type smart device pour WM5 quand on pose un panel on a un smarttag, doit on doit pouvoir en coder aussi


    pour résumer, une grande partie de l'interface de visual studio est codée en .net, le propertygrid des propriétés en bas à droite est celui qu'on peut poser sur nos forms, meme le redimensionnement des controles en mode design est écrit en .net (les boutons pour agrandir qui apparaissent etc...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    et en complément , je dirais que le sujet a été traité pleins de fois par le passé et qu'ils existent plusieurs solutions pour choisir les propriétés à afficher
    (on peut, par reflection en cacher en fonction d'une liste à remplir par soi-même)

    Le code se trouve dans le forum et date de moins d'un an si ma mémoire n'est pas trop défaillante !
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/10/2006, 16h46
  2. Réponses: 4
    Dernier message: 19/10/2006, 14h29
  3. [VB6] liste de propriétés \ controle arriere plan
    Par ouar dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/06/2006, 22h42
  4. Réponses: 3
    Dernier message: 24/10/2005, 16h32
  5. [CSS] Liste des propriétés
    Par tails dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 18/04/2005, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo