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 avec image dans une form


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 177
    Points : 130
    Points
    130
    Par défaut UserControl avec image dans une form
    J'ai créé un UserControl personnalisé avec juste une PictureBox et un NumericUpDown et j'ai déclaré 2 propriétés pour pouvoir les modifier directement et graphiquement dans la form appellante

    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
    24
    25
    26
    27
    28
    public partial class UC_Img : UserControl
        {
            public UC_Img()
            {
                InitializeComponent();
            }
     
            [DefaultValue(ECountryImage.Blanc)]
            [Editor(typeof(DecoreurImage), typeof(System.Drawing.Design.UITypeEditor))]
            public ECountryImage Image
            {
                get { return this.Image; }
                set {
                    this.Image = value;
                    Bitmap bmp = Ressource.getImage(value);
                    if (bmp != null)
                    {
                        this.pictureBox.Image = bmp; //<= Cette ligne fait planté l'IDE
                    }
                }
            }
     
            public int Nombre
            {
                get { return Decimal.ToInt32(this.compte.Value); }
                set { this.compte.Value = value; }
            }
        }
    Mais à chaque régénération du projet(ou quand je clique sur mon UC_img de la form), Visual Studio 2008 cesse de fonctionné et redémarre. Comment faire pour que quand je choisi dans ma comboBox une image (grâce à ma décoration, j'ai une mini image ainsi que son nom), elle se mette aussi dans la pictureBox sans casser l'IDE.

    Merci d'avance,

    Arsenic68

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Ce que je ne comprends pas, c'est la ligne :

    dans le set, qui du coup fait de la récursivité...

    Ensuite, PictureBox.Image attends une variable de type Image et non Bitmap.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 177
    Points : 130
    Points
    130
    Par défaut
    C'était ce que j'avais lu sur je sais plus quel site (ca marche bien pour les autres classe). J'ai essayé de le supprimer toujours le même problème.

    Si je ne fais pas l'affectation sur le pictureBox, je n'ai pas de problème.
    Il faut faire un simple cast (qu'il fait a priori tout seul)

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Normalement, tu ne fais ça que si tu as un champ privé qui va le stocker en mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private Int32 _number;
     
    public Int32 Number
    {
        get { return this._number; }
        set { this._number = value; }
    }
    Mais dans un cas comme le tien, il ne vaut mieux pas le faire, vu que tu va stocker l'image dans la PictureBox.

    Quand au cast, tente avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.pictureBox.Image = (Image)bmp;
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 177
    Points : 130
    Points
    130
    Par défaut
    C'est bizarre mais ça marche (enfin quand ca veut bien générer correctement )
    Sinon j'ai un
    La variable 'UC_img1' n'est pas déclarée ou n'a jamais été assignée.
    EcountryImage c'est juste un enum (à partir duquel on peut récupérer une image dans les ressources).

    Le seul "soucis" c'est la valeur par défaut, il prend le premier membre de l'enum et pas la DefaultValue et il charge pas direct l'image si je change pas une fois la comboBox

  6. #6
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    ça n'est pas bizarre, c'est logique

    Pour ton message d'erreur, je n'ai pas vu où tu utilisais cet objet. Mais vu son nom, tu as dû créer un objet du type de ton UserControl afin de le tester, il te suffit de faire ce que te dis le message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UC_img UC_img1 = new UC_img();
    Pour ton dernier souci, il te suffit d'affecter une valeur à ta propriété Image dans le constructeur de ton UserControl, ainsi il aura toujours la valeur que tu veux.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    177
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 177
    Points : 130
    Points
    130
    Par défaut
    C'est le composant graphique de test que j'ai mis sur ma form.

    Si je fais un constructeur avec paramètre et que je dépose un composant graphique sur la form, il va forcément utilisé la version sans paramètre no?

  8. #8
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Exact, il utilisera le constructeur par défaut.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

Discussions similaires

  1. Disposition Images dans une form
    Par Flopp dans le forum C#
    Réponses: 3
    Dernier message: 25/11/2009, 12h12
  2. Placer une Image dans une Form
    Par MarcVB6 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 28/11/2007, 04h05
  3. Afficher une image dans une form
    Par sys1 dans le forum Débuter
    Réponses: 5
    Dernier message: 03/11/2007, 09h42
  4. Réponses: 3
    Dernier message: 20/04/2007, 14h06
  5. image dans une form
    Par myspirou dans le forum C++Builder
    Réponses: 4
    Dernier message: 22/04/2006, 20h07

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