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

C# Discussion :

WinForm : numericUpDown couplé a un textBox


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut WinForm : numericUpDown couplé a un textBox
    Bonjour a tous,

    J'ai dans mon programme un contrôle numericUpDown. Celui-ci permet suivant la valeur choisi d'affiché un label + un textbox.

    Si la valeur du numericUpDown est 1 alors il affiche 1 label et 1 textbox.
    Si la valeur est 2 alors il affiche 2 label et 2 textbox.
    ... etc etc

    Jusque la tout vas bien.

    Mais si je choisi 1 après avoir choisi 2 j'ai toujours 2 label et 2 textbox.

    En gros quand j'incrémente mon numericUpDown il y a le nombre de contrôle voulu mais quand je décrémente les contrôle présent dans mon panel ne bouge pas.

    Voici mon code :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    public Form1()
            {
                InitializeComponent();
                numericUpDownNbrPropriete.Maximum = 10;
                numericUpDownNbrPropriete.Minimum = 1;
                numericUpDownNbrPropriete.Value = 1;
            }
     
     
            private void numericUpDownNbrPropriete_ValueChanged(object sender, EventArgs e)
            {
                switch ((int)numericUpDownNbrPropriete.Value)
                {
                    case 1:
                        Label labelChamp1 = new Label();
                        TextBox textBoxChamp1 = new TextBox();
                        labelChamp1.Text = "propriété n° 1 ";
                        panelPropriete.Controls.Add(labelChamp1);
                        panelPropriete.Controls.Add(textBoxChamp1);
                        labelChamp1.Location = new Point(10, 10);
                        textBoxChamp1.Location = new Point(40, 10);
                        break;
                    case 2:
                        Label labelChamp2 = new Label();
                        TextBox textBoxChamp2 = new TextBox();
                        labelChamp2.Text = "propriété n° 2 ";
                        panelPropriete.Controls.Add(labelChamp2);
                        panelPropriete.Controls.Add(textBoxChamp2);
                        labelChamp2.Location = new Point(10, 40);
                        textBoxChamp2.Location = new Point(40, 40);
                        break;
                    case 3:
                        Label labelChamp3 = new Label();
                        TextBox textBoxChamp3 = new TextBox();
                        labelChamp3.Text = "propriété n° 3 ";
                        panelPropriete.Controls.Add(labelChamp3);
                        panelPropriete.Controls.Add(textBoxChamp3);
                        labelChamp3.Location = new Point(10, 70);
                        textBoxChamp3.Location = new Point(40, 70);
                        break;
                    default:
                        break;
                }
            }
    Merci a vous pour votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Bonjour,

    En effet, c'est normal car tu ne fais qu'ajouter des couples de Label - textbox.

    Si tu regarde ton code, dans tout tes cas, tu fais des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panelPropriete.Controls.Add(XX)
    Ce qui est bon lorsque tu incrémentes ton numericUpDown, mais lorsque tu décrémente, il faut que tu en supprimes sinon il y aura toujours ceux de la plus grande valeur

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    tu peut utiliser qu'une instance de label et textbox et tu joue sur leurs Location et leurs valeur

    code modifié

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    public class Form1
            {
                InitializeComponent();
                numericUpDownNbrPropriete.Maximum = 10;
                numericUpDownNbrPropriete.Minimum = 1;
                numericUpDownNbrPropriete.Value = 1;
                Label labelChamp = new Label();
                TextBox textBoxChamp = new TextBox();
     
                panelPropriete.Controls.Add(labelChamp);
                 panelPropriete.Controls.Add(textBoxChamp);
            }
     
     
            private void numericUpDownNbrPropriete_ValueChanged(object sender, EventArgs e)
            {
                switch ((int)numericUpDownNbrPropriete.Value)
                {
                    case 1:
                       labelChamp.Text = "propriété n° 1 ";
                       labelChamp.Location = new Point(10, 10);
                       textBoxChamp.Location = new Point(40, 10);
                        break;
                    case 2:
     
                        labelChamp.Text = "propriété n° 2 ";
                        labelChamp.Location = new Point(10, 40);
                        textBoxChamp.Location = new Point(40, 40);
                        break;
                    case 3:
                        labelChamp.Text = "propriété n° 3 ";
                        labelChamp.Location = new Point(10, 70);
                        textBoxChamp.Location = new Point(40, 70);
                        break;
                    default:
                        break;
                }
            }

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    Merci a vous deux pour vos réponse rapide.

    @azstar :

    Ta méthode marche bien mais elle affiche un seul couple ( label + textbox ). En gros j'ai soit le couple ( label1 + textbox1 ) soit le couple ( label2 + textbox2).

    Je souhaiterai avoir le nombre exacte de couple correspondant au chiffre du numericUpDown.

    @supermouton :

    Je me demande ou avais-je la tête. Effectivement je ne fais qu'ajouter.

    je suis entrain d'essayer de créer une méthode permettant de récupérer le Name du contrôle a supprimer pour utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    panelPropriete.Controls.RemoveByKey("Name du controle");

  5. #5
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Ok j'ai compri

    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
     
     
    public Form1()
            {
                InitializeComponent();
                numericUpDownNbrPropriete.Maximum = 10;
                numericUpDownNbrPropriete.Minimum = 1;
                numericUpDownNbrPropriete.Value = 1;
            }
     
     
            private void numericUpDownNbrPropriete_ValueChanged(object sender, EventArgs e)
            {
              panelPropriete.Controls.Clear();
                for(int i=1;i<=(int)numericUpDownNbrPropriete.Value;i++)
                {
                        Label labelChamp = new Label();
                        TextBox textBoxChamp = new TextBox();
                        labelChamp.Text = "propriété n°  "+i.Tostring();
                        panelPropriete.Controls.Add(labelChamp);
                        panelPropriete.Controls.Add(textBoxChamp);
                        labelChamp.Location = new Point(10, 70);//il faut chager les location en focntion de i
                        textBoxChamp.Location = new Point(40, 70);
     
                }
            }
    }

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    @azstar :

    Merci énormément. ça marche parfaitement.
    j'avais pas penser a utiliser le for.

    Encore merci pour ton aide

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/10/2007, 13h44
  2. [WinForms][Tout langage] retour chariot textbox multiligne
    Par frjover dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 21/12/2006, 14h51
  3. [C#] Textbox, equivalent du setfocus en winforms
    Par hirochirak dans le forum ASP.NET
    Réponses: 9
    Dernier message: 04/12/2006, 18h36
  4. [WinForms]scanner une textbox et remplacer des caractères
    Par totoche9 dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 18/08/2006, 14h40
  5. Réponses: 3
    Dernier message: 28/04/2006, 09h51

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