boutons + labels

boutons + labels - C#/.NET managed - Programmation

Marsh Posté le 09-04-2014 à 21:13:19    

Bonsoir, j'aimerais un peu d'aide afin de réaliser ce qui suit :
 
-Deux boutons "+" et "-"
-Un label où il y aura des valeurs(celles ci : 10 - 20 - 30 - 40 - 50)
-Lorsque l'on appuie sur le "+", cela ajoute 10 dans le label.
-Lorsque l'on appuie sur le "-", cela soustrait 10 dans le label.
-Tout cela en sachant que la valeur final dans le label doit être sauvegardé pour être réutilisé dans le code.
 
Voici mon début de code sauf que ça ne donne rien et je me rend compte que là ça ne soustraira ni n'ajoutera de 10 en 10. Comment faire, je n'arrive même pas à modifier le champ texte du label ?
 

Code :
  1. namespace SHOGI_01
  2. {
  3.     public partial class Menu : Form
  4.     {
  5.         tuto T;
  6.         frmPlateaux P;
  7.         int a = +10;
  8.         int b = -10;
  9.         int choixminutes = 0;
  10.        
  11.         public Menu()
  12.         {
  13.             InitializeComponent();
  14.             btnmoins.Visible = false;
  15.             btnplus.Visible = false;
  16.             lblminutes.Visible = false;
  17.         }
  18.         private void btnquitter_Click(object sender, EventArgs e)
  19.         {
  20.             this.Close();
  21.         }
  22.         private void btntuto_Click(object sender, EventArgs e)
  23.         {
  24.            T = new tuto(this);
  25.            T.Show();
  26.            btntuto.Enabled = false;
  27.         }
  28.         private void btnjouer_Click(object sender, EventArgs e)
  29.         {
  30.             P = new frmPlateaux(this);
  31.             P.Show();
  32.             btnjouer.Enabled = false;
  33.         }
  34.         private void btnparametres_Click(object sender, EventArgs e)
  35.         {
  36.             btnjouer.Visible = false;
  37.             btnquitter.Visible = false;
  38.             btntuto.Visible = false;
  39.             btnparametres.Visible = false;
  40.             btnmoins.Visible = true;
  41.             btnplus.Visible = true;
  42.             lblminutes.Visible = true;
  43.         }
  44.         private void choix()
  45.         {
  46.             while (choixminutes > 0)
  47.             {
  48.                 if (choixminutes == 1)
  49.                 {
  50.                     lblminutes.Text = Convert.ToString('a');
  51.                 }
  52.                 if (choixminutes == 2)
  53.                 {
  54.                     lblminutes.Text = Convert.ToString('b');
  55.                 }
  56.             }
  57.         }
  58.         private void btnplus_Click(object sender, EventArgs e)
  59.         {
  60.             choixminutes = 1; 
  61.         }
  62.         private void btnmoins_Click(object sender, EventArgs e)
  63.         {
  64.             choixminutes = 2;
  65.         }
  66.     }
  67. }

Reply

Marsh Posté le 09-04-2014 à 21:13:19   

Reply

Marsh Posté le 10-04-2014 à 12:28:43    

Une manière de faire :
 
Dans ce bout de code, tu vires la fonction choix().
 

Code :
  1. private void choix()
  2.         {
  3.             while (choixminutes > 0)
  4.             {
  5.                 if (choixminutes == 1)
  6.                 {
  7.                     lblminutes.Text = Convert.ToString('a');
  8.                 }
  9.                 if (choixminutes == 2)
  10.                 {
  11.                     lblminutes.Text = Convert.ToString('b');
  12.                 }
  13.             }
  14.         }
  15.         private void btnplus_Click(object sender, EventArgs e)
  16.         {
  17.             choixminutes = 1;
  18.         }
  19.         private void btnmoins_Click(object sender, EventArgs e)
  20.         {
  21.             choixminutes = 2;
  22.         }


 
tu vires le champ choixminutes, que tu remplaces par  
 

Code :
  1. int minutes = 0;


 
Tu vires aussi
 

Code :
  1. int a = +10;
  2. int b = -10;


que tu remplaces par
 

Code :
  1. const int increment = 10;


 
ensuite

Code :
  1. private void btnplus_Click(object sender, EventArgs e)
  2. {
  3.     minutes +=increment;//incrément de 10
  4.     DisplayMinutes();
  5. }
  6. private void btnmoins_Click(object sender, EventArgs e)
  7. {
  8.     minutes -=increment;//décrément de 10
  9.     DisplayMinutes();
  10. }
  11. //fonction pour mettre à jour le label
  12. private void DisplayMinutes()
  13. {
  14.      lblMinutes.Text = minutes.ToString();
  15. }


Message édité par deliriumtremens le 10-04-2014 à 12:31:46
Reply

Marsh Posté le 10-04-2014 à 14:53:21    

Merci, un ami de ma classe venait juste de me donner la solution. Du coup, sur mon menu j'ai un autre problème... J'ai réussi mais il doit y avoir une ambiguïté entre les deux frmPlateaux P et frmPlateaux M. Du coup, je ne peux plus appeler le jeu depuis le menu maintenant, et je ne peux pas vérifier si la variable a bien changé de valeur.
 

Code :
  1. namespace SHOGI_01
  2. {
  3. public partial class Menu : Form
  4. {
  5.  tuto T;
  6.  frmPlateaux P;
  7.  int a = 5;
  8.  int c = 5;
  9.  int choixminutes = 20;     
  10.  public Menu()
  11.  {
  12.   InitializeComponent();
  13.   btnmoins.Visible = false;
  14.   btnplus.Visible = false;
  15.   lblminutes.Visible = false;
  16.   button1.Visible = false;
  17.   frmPlateaux M = new frmPlateaux(choixminutes);
  18.  }
  19.  private void btnquitter_Click(object sender, EventArgs e)
  20.  {
  21.   this.Close();
  22.  }
  23.  private void btntuto_Click(object sender, EventArgs e)
  24.  {
  25.     T = new tuto(this);
  26.     T.Show();
  27.     btntuto.Enabled = false; // cela permet de griser la case quand elle est active
  28.  }
  29.  private void btnjouer_Click(object sender, EventArgs e)
  30.  {
  31.   P = new frmPlateaux(this); // ici bug, cela permet de griser le bouton déjà en activité
  32.   P.Show();
  33.   btnjouer.Enabled = false;
  34.  }
  35.  private void btnparametres_Click(object sender, EventArgs e)
  36.  {
  37.   btnjouer.Visible = false;
  38.   btnquitter.Visible = false;
  39.   btntuto.Visible = false;
  40.   btnparametres.Visible = false;
  41.   button1.Visible = true;
  42.   btnmoins.Visible = true;
  43.   btnplus.Visible = true;
  44.   lblminutes.Visible = true;
  45.  }
  46.  private void btnplus_Click(object sender, EventArgs e)
  47.  {
  48.   if (choixminutes < 60)
  49.   {
  50.    choixminutes += a;
  51.    lblminutes.Text = Convert.ToString(choixminutes);
  52.   }
  53.  }
  54.  private void btnmoins_Click(object sender, EventArgs e)
  55.  {
  56.   if (choixminutes > 5)
  57.   {
  58.    choixminutes -= c;
  59.    lblminutes.Text = Convert.ToString(choixminutes);
  60.   }
  61.  }
  62.  private void button1_Click(object sender, EventArgs e)
  63.  {
  64.   btnjouer.Visible = true;
  65.   btnquitter.Visible = true;
  66.   btntuto.Visible = true;
  67.   btnparametres.Visible = true;
  68.   btnmoins.Visible = false;
  69.   btnplus.Visible = false;
  70.   lblminutes.Visible = false;
  71.   button1.Visible = false;
  72.  }
  73. }
  74. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed