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 :

Designer afficher nom namespace


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 Designer afficher nom namespace
    Bonjour,

    J'ai un control personnaliser (hérite de la class control, redéfinition de la méthode onPaint(), ...).

    Ce control fait appel à des librairie externe de type "coredll.dll" afin de dessiner un dégrader en compact Framework.

    Le problème est que avec ce genre de code, lorsqu'on drag le control depuis la toolbox, on voit bien la forme apparaitre mais il s'agit d'un rectangle blanc avec inscrit le nom du namespace.

    Moi je voudrais qu'il m'affiche mon control sans forcement avec un degradé mais au moins avec une couleur de fond.

    Pour cela, dans mon code j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public static bool IsPocket()
    {
        return ((Environment.OSVersion.Platform != PlatformID.Win32Windows) && (Environment.OSVersion.Platform != PlatformID.Win32NT));
    }
    Je test donc si on se trouve sur un environnement de type Pocket ou Desktop avec cette méthode et dessine mon control en fonction du résultat de cette dernière. (dessin simple, juste couleur de fond, ne fait pas appel aux librairie externe).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    gr2.FillRectangle(new SolidBrush(startColor), rc);
    gr2.DrawRectangle(p, rc);
    g.DrawImage(DoubleBufferImage, 0, 0);
    Pourtant, le résultat est le même : toujours l'affichage du nom du namespace.

    Voila si vous avez des pistes je suis bien évidemment preneur.
    Merci à vous

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Je connais pas la solution à ton problème, mais je peux au moins te dire que les Control ont une propriété DesignMode qui n'est true que dans le designer, et pas à l'exécution. Ça peut p't'être t'aider.

  3. #3
    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
    Salut Guulh

    Merci pour ta réponse.
    Ça ne m'aide pas pour mon problème ici mais je garde cette propriété en tête ca pourra toujours servir

  4. #4
    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
    Yep,

    Voila des informations supplémentaire :
    Si je refait un control tous simple sans aucune librairie externe, l'affichage se passe super bien dans le designer.

    Ce code la marche très bien :
    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
    20
    21
    22
    23
     public class Class1 : System.Windows.Forms.Control
        {
     
            private Color color;
     
     
            public Class1()
            {
     
            }
     
            public Color Color
            {
                get { return color; }
                set { color = value; Invalidate(); }
            }
     
            protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
            {
                Graphics gr = e.Graphics;
                gr.FillRectangle(new SolidBrush(color), 0, 0, 20, 20);
            }
        }
    Le problème vient donc de mes appel au librarie externe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [DllImport("coredll.dll", SetLastError = true, EntryPoint = "GradientFill")]
    Je ne sais comment résoudre ce problème.
    J'ai cru entendre qu'il y avait des techniques particulière pour inclure des librairie externe, je ne sais pas si vous avez des informations ou autre chose à ce sujet mais je suis preneur.

    Cordialement
    Sam

  5. #5
    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
    Yep à tous.

    J'ai trouvé la réponse (enfin pas moi, on ma aider parce que je ne suis pas sur que j'aurais trouvé ^^)

    En faite comme je fait appel à des librairie externe, mon contrôle dans le designer est considéré comme "non sur" donc ne s'affiche pas.

    Pour résoudre, mettre ceci dans le fichier d'attribut .xmta:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <Class Name="Itron.Mobile.UI.Control.Class1">
    	<DesktopCompatible>true</DesktopCompatible>
    </Class>
    Voila merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher nom de fichier dans showmessage
    Par Nicolas01 dans le forum Delphi
    Réponses: 1
    Dernier message: 13/05/2007, 03h16
  2. [ETAT] afficher nom et année
    Par sumtech dans le forum IHM
    Réponses: 2
    Dernier message: 17/04/2007, 09h07
  3. Afficher NOM/PRENOM Dynamiquement ?
    Par Kenshin86 dans le forum SQL Procédural
    Réponses: 17
    Dernier message: 30/03/2007, 07h06
  4. afficher nom de variable
    Par amine_en_france dans le forum Langage
    Réponses: 1
    Dernier message: 19/03/2007, 17h37
  5. Afficher noms des tables d'une base
    Par jeff37 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/01/2004, 16h00

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