Créer des Picturebox à l'infini

Résolu
Smookii Messages postés 10 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 29 mars 2013 - 18 juin 2012 à 18:30
Smookii Messages postés 10 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 29 mars 2013 - 19 juin 2012 à 12:05
Bonjour,

Alors voilà mon problème, je voudrais faire un petit jeu en winform style "space invaders" et je voudrais que mon petit vaiseau tir des picturebox sur mes ennemis j'utilise un timer pour délimiter le temps entre chaque tirs et je voudrais qu'à chaque passage dans le timer, le programme crée une nouvelle picture box avec un nom différent :
Tir0,
Tir1,
Tir2...
Et pour cela j'ai fais ce code :
[i] private void tmshoot_Tick(object sender, EventArgs e)
{
iCpt++;
PictureBox TiriCpt = new PictureBox();
}/i
Est il possible de faire en sorte que iCpt soit la variable qui définirait le nombre dans le nom de la pictureBox ?

Merci d'avance.

4 réponses

BasicInstinct Messages postés 1471 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
19 juin 2012 à 09:58
Salut,

C'est tout a fait possible :


            TextBox tbTemp = new TextBox();
            //Affectation du nom
            tbTemp.Name = "test";
            tbTemp.Location = new System.Drawing.Point(10, 10);
            tbTemp.Size = new System.Drawing.Size(200, 22);
            tbTemp.Parent = this;
            //Appel par son nom
            Controls["test"].Text = "Yes you can";


BasicInstinct
3
Whismeril Messages postés 18199 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 janvier 2023 624
18 juin 2012 à 22:38
Bonsoir,

pour autant que je sache non.

Par contre si tu veux savoir grâce à un index (iCpt) de quel PictureBox il s'agit, je pense qu'une List<T> fera l'affaire.

.....
List MaListe = new List();//initialise une liste au niveau de la classe
.....
private void tmshoot_Tick(object sender, EventArgs e) 
{ 
   iCpt++; 
   MaListe.Add = new PictureBox();// y ajoute un tir
} 


....
PictureBox Tir27 = MaList[27];//récupère l'instance 27




Whismeril
0
Whismeril Messages postés 18199 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 janvier 2023 624
19 juin 2012 à 11:20
De la façon dont la question est posée, je comprends que le nom de la variable doit être fonction du nombre de tir.
Pour le nom de la picturebox alors oui comme le montre basicinstinct par de problème.


Whismeril
0
Smookii Messages postés 10 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 29 mars 2013
19 juin 2012 à 12:05
Merci a tous pour vos réponses .
0
Rejoignez-nous