Mon panel ne veut pas se crée c# .net [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 6 juillet 2020
Statut
Membre
Dernière intervention
23 septembre 2020
-
Messages postés
10
Date d'inscription
lundi 6 juillet 2020
Statut
Membre
Dernière intervention
23 septembre 2020
-
Bonjour,
J'ai un problème avec la création de mes panel la 1ere fois il se crée bien mais aprés la fonction ne marche plus pourriez vous m'aider ? Voici le code :
Form2 form2 = new Form2();
form2.Owner = this;
DialogResult result = form2.ShowDialog();
if (result == DialogResult.OK)
{
int Number = number;
Panel newpanel = new Panel();
int panel = Number + 3;
//string panelnew = Convert.ToString(panel);
//newpanel.Name = "panel" + panelnew;
newpanel.Size = new Size(770, 31);
int point = Number * 31;
int point2 = point + 77;
newpanel.Location = new Point(0, point2);
Label newlabel = new Label();
int number = Number + 1;
newlabel.Text = form2.label12.Text;
string numberw = Convert.ToString(number);
newlabel.Text = numberw;
newlabel.Location = new Point(9, 9);
newlabel.Size = new Size(67, 13);
Label newlabel1 = new Label();
newlabel1.Text = form2.label13.Text;
newlabel1.Location = new Point(97, 9);
newpanel.Controls.Add(newlabel);
newpanel.Controls.Add(newlabel1);
Controls.Add(newpanel);

Merci d'avance
Cordialement 5dt1

6 réponses

Messages postés
14855
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 octobre 2020
590
Bonjour

merci d'avoir essayé d'utiliser les balises de code. Mais ce serait mieux de les utiliser correctement voir ici pour tes prochains posts https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


mais aprés la fonction ne marche plus pourriez vous m'aider ?

Peux tu préciser?
  • Form2 s'affiche t elle?
  • Si oui, as tu mis un point d'arrêt puis exécuté pas à pas pour vois si toutes les instructions sont exécutées?
  • Si oui, est il possible que tes panels soient les un sur les autres et que tu ne les voies pas ou alors que les suivants soient placés en dehors de ton formulaire?


Messages postés
10
Date d'inscription
lundi 6 juillet 2020
Statut
Membre
Dernière intervention
23 septembre 2020
1
Merci pour votre réponse rapide et vos conseilles ,
-Oui form2 s'affiche parfaitement bien .
-Non je vais aller tester pour vérifier.
Merci,
5dt1
Messages postés
10
Date d'inscription
lundi 6 juillet 2020
Statut
Membre
Dernière intervention
23 septembre 2020
1
Le problème vient du faite que number ne sauvegarde pas sa valeur
Messages postés
14855
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 octobre 2020
590
Peut-être, mais si tu veux qu’on t’aider à trouver pourquoi, il nous faut plus de code.
Et notamment la déclaration de number et sa portée.
Messages postés
10
Date d'inscription
lundi 6 juillet 2020
Statut
Membre
Dernière intervention
23 septembre 2020
1
Voici tout le code de la form1 :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Calculateur
{
    public partial class Form1 : Form
    {
        internal Form1()
        {
            InitializeComponent();
        }
        public int number;
        public void generationpanel()
        {
            int Number = number;
            Form2 form2 = new Form2();
            DialogResult result = form2.ShowDialog();
            if (result == DialogResult.OK)
            {
                Panel newpanel = new Panel();
                int panel = Number + 3;
                string panelnew = Convert.ToString(panel);
                newpanel.Name = "panel" + panelnew;
                newpanel.Size = new Size(770, 31);
                int point = Number * 31;
                int point2 = point + 77;
                newpanel.Location = new Point(0, point2);
                Label newlabel = new Label();
                newlabel.Text = form2.label12.Text;
                newlabel.Text = form2.label12.Text;
                newlabel.Location = new Point(9, 9);
                newlabel.Size = new Size(67, 13);
                Label newlabel1 = new Label();
                newlabel1.Text = form2.label13.Text;
                newlabel1.Location = new Point(97, 9);
                newpanel.Controls.Add(newlabel);
                newpanel.Controls.Add(newlabel1);
                Controls.Add(newpanel);
                int number = Number++;
                button1.Text = Convert.ToString(Number);
            }
        }
        public void colormouseenter()
        {
            panel2.BackColor = Color.FromArgb(255, 200, 200, 200);
        }
        public void colormouseleave()
        {
            panel2.BackColor = SystemColors.Control;
        }
        private void label2_Click(object sender, EventArgs e)
        {
            generationpanel();
        }
        private void panel2_Click(object sender, EventArgs e)
        {
            generationpanel();
        }
        private void label1_Click(object sender, EventArgs e)
        {
            generationpanel();
        }
        private void label1_MouseEnter(object sender, EventArgs e)
        {
            colormouseenter();
        }
        private void label2_MouseEnter(object sender, EventArgs e)
        {
            colormouseenter();
        }
        private void panel2_MouseEnter(object sender, EventArgs e)
        {
            colormouseenter();
        }
        private void label1_MouseLeave(object sender, EventArgs e)
        {
            colormouseleave();
        }
        private void label2_MouseLeave(object sender, EventArgs e)
        {
            colormouseleave();
        }
        private void panel2_MouseLeave(object sender, EventArgs e)
        {
            colormouseleave();
        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show("Voulez vous vraiment quitter ? Toutes les ajouts effectués seront alors supprimé !", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.No)
            {
                e.Cancel = true;
            }
        }
Messages postés
10
Date d'inscription
lundi 6 juillet 2020
Statut
Membre
Dernière intervention
23 septembre 2020
1
C'est bon j'ai réussi a corriger le problème de la variable number , le problème venait de la je poste le code pour ce que ça intéresse .
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Calculateur
{
    public partial class Form1 : Form
    {
        internal Form1()
        {
            InitializeComponent();
        }
        public static int number;
        int Number = number;
        public void generationpanel()
        {
            //int Number = number;
            Form2 form2 = new Form2();
            DialogResult result = form2.ShowDialog();
            if (result == DialogResult.OK)
            {
                Panel newpanel = new Panel();
                int panel = Number + 3;
                string panelnew = Convert.ToString(panel);
                newpanel.Name = "panel" + panelnew;
                newpanel.Size = new Size(770, 31);
                int point = Number * 31;
                int point2 = point + 77;
                newpanel.Location = new Point(0, point2);
                Label newlabel = new Label();
                newlabel.Text = form2.label12.Text;
                newlabel.Text = form2.label12.Text;
                newlabel.Location = new Point(9, 9);
                newlabel.Size = new Size(67, 13);
                Label newlabel1 = new Label();
                newlabel1.Text = form2.label13.Text;
                newlabel1.Location = new Point(97, 9);
                newpanel.Controls.Add(newlabel);
                newpanel.Controls.Add(newlabel1);
                Controls.Add(newpanel);
                button1.Text = Convert.ToString(Number);
            }
            int number = Number++;
        }

Merci pour votre aide ;)
5dt1
Messages postés
14855
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 octobre 2020
590
Ça me surprend qu’il ait fallu passer la variable static, mais soit
Messages postés
10
Date d'inscription
lundi 6 juillet 2020
Statut
Membre
Dernière intervention
23 septembre 2020
1
Après nettoyage du code j'ai supprimé la variable static :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Calculateur
{
    public partial class Form1 : Form
    {
        internal Form1()
        {
            InitializeComponent();
        }
        public int Number;
        public void generationpanel()
        {
            Form2 form2 = new Form2();
            DialogResult result = form2.ShowDialog();
            if (result == DialogResult.OK)
            {
                Panel newpanel = new Panel();
                newpanel.Size = new Size(760, 31);
                int point = Number * 31;
                newpanel.Location = new Point(0, point);
                Label newlabel = new Label();
                newlabel.Text = form2.name;
                newlabel.Location = new Point(9, 9);
                newlabel.Size = new Size(67, 13);
                Label newlabel1 = new Label();
                newlabel1.Text = form2.argentph + " $ / h";
                newlabel1.Location = new Point(175, 9);
                newpanel.Controls.Add(newlabel);
                newpanel.Controls.Add(newlabel1);
                conteneur.Controls.Add(newpanel);
            }
            int number = Number++;
        }

5dt1