none
creer par code un controle sur un form

    Question

  • bonsoir

     pour faire usite à mon programme je ovudrais pouvoir creer par code un pixturbox  et le localiser et modifier ses dimensions et aussi le passer en strech image

    merci de m'aider

    mercredi 21 septembre 2016 23:56

Réponses

  • desole mais j'obtiens toujour sl'erreur comme quoi pc7 n'est pas dans le contexte actuel

    je comprends pas

    dans mon form je cree par code les pixcturbox  suivnat les besoins d'affichage  je vois que  vous avez defini au debut les picturbox

    • Modifié SIMONGEORGES vendredi 23 septembre 2016 14:31
    • Marqué comme réponse SIMONGEORGES vendredi 23 septembre 2016 15:12
    vendredi 23 septembre 2016 14:29

Toutes les réponses

  • Bonjour,  

    PictureBox pic = new PictureBox();
    pic.Location = new Point(10, 10);
    pic.Size = new Size(50, 50);
    pic.SizeMode = PictureBoxSizeMode.StretchImage;

    A vous d'ajuster les localisation et taille à votre guise.


    jeudi 22 septembre 2016 07:51
  • bonjour un grand merci je vais de ce pas le tester

    je vis de le tester mais je n'arrive pas a obtenir une image lors que je le démarre voici le code y a til une erreur de ma part merci de me  dire

    namespace WindowsFormsApplication2_creer_picturbox
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                PictureBox pic = new PictureBox();
                pic.Location = new Point(10, 10);
                pic.Size = new Size(50, 50);
                pic.SizeMode = PictureBoxSizeMode.StretchImage;
                pic.Image = Properties.Resources.ail;
    
            }
        }
    }

    je viens d'jouter un ligne de code :

    this.controls.add(pic);

    et afonctionne un grand merci


    jeudi 22 septembre 2016 09:07
  • Il faut ajout la picturebox au controle global que vous affichez.

    Si la picturebox est dans un form ou un panel il faut l'ajouter à ce dernier.

    Par exemple pour un panel :

    panel1.Controls.Add(pic);

    Je pense que votre problème vient de là.

     
    jeudi 22 septembre 2016 10:00
  • merci beaucoup

     j’ai réussi à le faire par contre me reste un soucis comment effacer  le  pictubox que je viens de créer  avec un click sur un bouton par exemple

    jeudi 22 septembre 2016 12:54
  •  private void button1_Click(object sender, EventArgs e)
     {
          panel1.Controls.Remove(pic);
     }
    Si tout est bon, pensez à sélectionner la ou les réponses utiles.
    jeudi 22 septembre 2016 13:47
  • bonjour avant de tester je me pose une question mon picthurbox se  trouve sur le form1 dois je remplacer panel par form

    merci de votre réponse

    jeudi 22 septembre 2016 14:35
  • vous avez bien compris. remplacer panel par form et ça fonctionnera.

    vendredi 23 septembre 2016 02:00
  • bonjour merci de votre réponse mais je viens de la tester et j'obtiens des erreurs dont voici la copie d'écran pouvez vous me corriger merci d'avance

    le picturbox pic2 existe bien sur le forme1

    vendredi 23 septembre 2016 08:45
  • Bonjour,

    remplacez Form1 par this.

    Cordialement,

    vendredi 23 septembre 2016 08:49
  • bonjour

    je viens de tester votre réponse

    j'ai obtenu une  erreur que j'ia corrigé comme suit cette correction m' a été proposée voici le code y apas d'erreur mais pas d'effacement du pic7

            private void button3_Click(object sender, EventArgs e)
            {
                Control pic7 = null;
                this.Controls.Remove(pic7);
            }
    

    pouvez vous m'expliquer pour quoi ce non fonctionnement un grand merci d'avance

    vendredi 23 septembre 2016 09:51
  • Le contrôle à supprimer doit exister, ici vous créez un objet null mais pic7 n'existait pas avant.

    Cordialement,

    vendredi 23 septembre 2016 10:42
  • le pic7 exciste bien voici le code que j'ai crée et je voudrais l'effacer avec le bouton 3 mais je n'y arrive pas pouvez vous m'aider merci d'avance
            private void button2_Click(object sender, EventArgs e)
    
            {
    
                //creation6° image
                PictureBox pic7 = new PictureBox();
                pic7.Location = new Point(245, 342);
                pic7.Size = new Size(50, 50);
                pic7.SizeMode = PictureBoxSizeMode.StretchImage;
                pic7.Image = Properties.Resources.anethta;
                this.Controls.Add(pic7);
                ToolTip tooltip5 = new ToolTip();// creer le tooltip
                tooltip5.SetToolTip(pic7, "artichaut");
    
                //cre une image dans le panel1
                //creation8° image
                PictureBox pic8 = new PictureBox();
                pic8.Location = new Point(345, 342);
                pic8.Size = new Size(50, 50);
                pic8.SizeMode = PictureBoxSizeMode.StretchImage;
                pic8.Image = Properties.Resources.asperges;
                this.Controls.Add(pic8);
                ToolTip tooltip6 = new ToolTip();// creer le tooltip
                tooltip5.SetToolTip(pic7, "asperges");
    
    
    
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
    
            }
        }
    


    vendredi 23 septembre 2016 11:57
  • Il faut que votre pic 7 soit instancié en dehors de la fonction (comme membre de la classe) sinon il est inconnu en dehors de celle-ci 

    private class Form1 : Form
    {
        PictureBox pic7 = new PictureBox();
    
        public Form1() 
        {
             InitialzeComponent();
    
             pic7.Location = new Point(245, 342);
                pic7.Size = new Size(50, 50);
                pic7.SizeMode = PictureBoxSizeMode.StretchImage;
                pic7.Image = Properties.Resources.anethta;
        }
         private void button2_Click(object sender, EventArgs e)
    
            {
    
                //creation6° image
                this.Controls.Add(pic7);
                ToolTip tooltip5 = new ToolTip();// creer le tooltip
                tooltip5.SetToolTip(pic7, "artichaut");
    
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                 this.Controls.Remove(pic7);
            }
    }



    vendredi 23 septembre 2016 14:08
  • desole mais j'obtiens toujour sl'erreur comme quoi pc7 n'est pas dans le contexte actuel

    je comprends pas

    dans mon form je cree par code les pixcturbox  suivnat les besoins d'affichage  je vois que  vous avez defini au debut les picturbox

    • Modifié SIMONGEORGES vendredi 23 septembre 2016 14:31
    • Marqué comme réponse SIMONGEORGES vendredi 23 septembre 2016 15:12
    vendredi 23 septembre 2016 14:29
  • Si vous créez votre picturebox dans la méthode button2_Click elle n'existe que dans celle-ci, et donc il est impossible de l'appeler dans la méthode button3_Click.

    Pour que votre picturebox soit accessible depuis n'importe méthode de votre classe, il faut que la picturebox soit un membre de la classe, donc déclarée au début de celle-ci en dehors de toutes méthodes.

     

    vendredi 23 septembre 2016 14:58
  • En tout cas de cette manière ça fonctionne bien :

    public partial class Form1 : Form
    {
        private PicturBox pic7 = null;
    
        private void button2_Click(object sender, EventArgs e)
        {
            pic7 = new PictureBox();
            [... code enlevé pour plus de lisibilité ...]
            this.Controls.Add(pic7);
        }
    
        private void button3_Click(object sender, EventArgs e)
        {
            if (pic7)
                this.Controls.Remove(pic7);
        }
    }

    Peut être une faute de frappe de votre côté.

    Cordialement

    vendredi 23 septembre 2016 15:05