Créer une nouvelle tabpage à partir d'un objet (Picturebox dans un panel)

Signaler
Messages postés
2
Date d'inscription
mercredi 26 février 2020
Statut
Membre
Dernière intervention
27 février 2020
-
Messages postés
2171
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 juillet 2020
-
Bonjour,
J'essaie de développer une application de dessin qui ajoute une nouvelle page (File -> New draw) dans une nouvelle tabpage (picturebox in panel in tabpage) et puis dessiner dessus(graphics), et pouvoir naviguer entre les onglets et pouvoir dessiner dans les pictureboxs indépendamment.

Pouvez-vous m'aider juste pour la partie mentionnée ci-dessus merci beaucoup

3 réponses

Messages postés
2171
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 juillet 2020
110
Messages postés
2
Date d'inscription
mercredi 26 février 2020
Statut
Membre
Dernière intervention
27 février 2020

Voici mon code :

public class Page
    {
        public int index;
      //creer le panel conteneur du pictureBox
       public Panel panPrincipal = new Panel();
        //creer la pictureBox
       public PictureBox picCanvas = new PictureBox();


        public void NouvellePage(Form form)
        {
            / le Panel
            panPrincipal.Location = new Point(56, 72);
            panPrincipal.Dock = DockStyle.Fill;            
            panPrincipal.BackColor = Color.Aqua;
            //ajouter le panel au form
            form.Controls.Add(panPrincipal);
           

            // la pictureBox
            picCanvas.Location = new Point(56, 72);
            picCanvas.Size = new Size(1000, 500);
            picCanvas.BackColor = Color.White;
            // ajouter la pictureBox au panel
            panPrincipal.Controls.Add(picCanvas);

           
        }
        public void Draw(Graphics gr)
        {
            // Create pen.
            Pen blackPen = new Pen(Color.Black, 3);

            // Create points that define line.
            PointF point1 = new PointF(200.0F, 200.0F);
            PointF point2 = new PointF(400.0F, 400.0F);

            // Draw line to screen.
            gr.DrawLine(blackPen, point1, point2);




     private void newPageBtn_Click(object sender, EventArgs e)
        {
            if (tabControl1.TabCount <= 0)
            {
                a = 0;
            }
            a++;
            var myPage = new Dictionary<string, object>();

            Page page = new Page();
            page.NouvellePage(this);
            TabPage newPage = new TabPage("Page " + a);
            tabControl1.TabPages.Add(newPage);
            tableLayoutPanel1.Controls.Add(tabControl1);
            newPage.Controls.Add(page.panPrincipal);
            pages.Add(page);
            int i = tabControl1.SelectedIndex;
            
            // myPage.Add("Page"+a, page);

            if (tabControl1.SelectedTab == tabControl1.TabPages[i])


            page.picCanvas.MouseMove += new System.Windows.Forms.MouseEventHandler(this.picCanvas_MouseMove);
            page.picCanvas.MouseDown += new System.Windows.Forms.MouseEventHandler(this.picCanvas_MouseDown);
            page.picCanvas.Paint += new System.Windows.Forms.PaintEventHandler(this.picCanvas_Paint);
            page.picCanvas.MouseUp += new System.Windows.Forms.MouseEventHandler(this.picCanvas_MouseUp);
            
            page.picCanvas.Invalidate();


        }
Messages postés
2171
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
11 juillet 2020
110
Bonjour
Pour poster du code voir ceci : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Merci
il manque des accolades { ou } à certains endroits dans votre code