2017-10-13 3 views
0

Im créer un 4 boutons avec une boucle for et je veux cibler un bouton spécifique dire un bouton avec un nom de 3 et faire quelque chose avec comme rendre invisible. Quelqu'un a une idée de comment je pourrais faire ça?Comment puis-je cibler un bouton spécifique que j'ai créé avec une boucle for?

for (int j = 0; j < 4; j++) 
      { 
       Button b = new Button(); 
       b.Left = x; 
       b.Top = y; 
       b.Width = WIDTH; 
       b.Height = HEIGHT; 
       b.Name = counter.ToString(); 

       counter++; 
       x += VGAP + HEIGHT; 
       this.Controls.Add(b); 
      } 
+0

Effectuez une itération avec 'this.Controls' et vérifiez quel enfant porte le nom' '3 ''. –

Répondre

0

Vous pouvez enregistrer des boutons en tableau (ou autre collection):

 Button[] buttons = new Button[4]; 
     for (int j = 0; j < 4; j++) 
     { 
      Button b = new Button(); 
      b.Left = x; 
      b.Top = y; 
      b.Width = WIDTH; 
      b.Height = HEIGHT; 
      b.Name = counter.ToString(); 

      counter++; 
      x += VGAP + HEIGHT; 
      this.Controls.Add(b); 
      buttons[i] = b; 
     } 

     //.... 
     button[3].Visible = false; 
+0

Oh wow je ne peux pas croire que je n'ai pas pensé à ça haha ​​merci ^^ – Kris

0

Depuis les boutons sont dynamiquement créés, vous ne pouvez pas les référencer dans votre code directement avec la propriété Name.
Vous pouvez stocker les boutons que vous créez dans une liste. Et puis faites quelque chose avec le bouton désiré à un index donné. Voir le code ci-dessous:

public partial class Form1 : Form 
{ 
    int x, y; 
    private const int WIDTH = 50; 
    private const int HEIGHT = 50; 
    private const int VGAP = 5; 
    List<Button> lstButtons = new List<Button>(); 


    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     int counter = 1; 
     for (int j = 0; j < 4; j++) 
     { 
      Button b = new Button(); 
      b.Left = x; 
      b.Top = y; 
      b.Width = WIDTH; 
      b.Height = HEIGHT; 
      b.Name = counter.ToString(); 

      counter++; 
      x += VGAP + HEIGHT; 
      this.Controls.Add(b); 
      lstButtons.Add(b); 

     } 

     DosomethingWithButton(3); 
    } 

    private void DosomethingWithButton(int index) 
    { 
     lstButtons[index].Text = "Hello"; 
    } 
}