Créer une série de pictureBox dynamiquement [Résolu]

jihednond 144 Messages postés jeudi 27 mars 2008Date d'inscription 3 septembre 2011 Dernière intervention - 31 oct. 2010 à 21:17 - Dernière réponse : cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention
- 1 nov. 2010 à 17:19
bonjour,

je suis en cour de création d'un petit jeux OnLine de type RPG donc je doit ajouter un "PictureBox" pour chaque joueur présent dans ma Base de donnée en utilisant une boucle while par exemple ou autre


 MySqlConnection connection = new MySqlConnection(myconstring);
            MySqlCommand command = connection.CreateCommand();
            MySqlDataReader reader;
            command.CommandText = "select * from player";
            connection.Open();
            reader = command.ExecuteReader();
            int i = 0;
            while (reader.Read())
            {
                PictureBox pic[i] = new PictureBox();
                pic[i].Image = Image.FromFile(@"C:\Users\jumperx\Desktop\playerimg.png");
                this.Controls.Add(pic);
                string playername[i] = reader.GetValue(1).ToString();
                int x = Convert.ToInt32(reader.GetValue(3).ToString());
                int y = Convert.ToInt32(reader.GetValue(4).ToString());
                pic[i].Location = new Point(x, y);
i++;
            }



pour ceux qui cherche la connexion c# Mysql vous pouvez utiliser mysqlconnector.NET
merci d’avance
Afficher la suite 

3 réponses

Répondre au sujet
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 1 nov. 2010 à 15:06
+3
Utile
Bonjour

Il me semble que tu n'es pas loin d'y arriver
mais il y a un probleme avec le tableau "pic"
passe plutot par une liste, c'est plus souple.

ex:
tu définis une class player
internal class Player
{
public string Username { get; private set; }
public PictureBox Picturebox { get; private set; }
public Player(string name, PictureBox picturebox)
{
Username = name;
Picturebox = picturebox;
}
}

dont tu crées une liste, dans les variables globales de ta classe
 List Players = new List();


puis dans ta boucle tu remplis la liste
while (reader.Read())
{
    PictureBox pic = new PictureBox();
    int x = Convert.ToInt32(reader.GetValue(3).ToString());
    int y = Convert.ToInt32(reader.GetValue(4).ToString());
    pic.Location = new Point(x, y);
    pic.Image = Image.FromFile(@"C:\Users\jumperx\Desktop\playerimg.png");
    
    Players.Add(new Player(reader.GetString(1),pic);
    this.Controls.Add(pic);
}





petite info,
si les valeurs de postion, dans ta base, son déjà des entiers, plutot que de passer par une string
utilise reader.GetInt32() pour les récuperer



C# is amazing, enjoy it!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Robert33
jihednond 144 Messages postés jeudi 27 mars 2008Date d'inscription 3 septembre 2011 Dernière intervention - 1 nov. 2010 à 15:43
0
Utile
merci Robert33

je ne sait pas comment j'ai pu oublier d'utilisé les classes
votre code est parfait vraiment vraiment géniale je peut et sur le même principe je voit les chose en claire encore merci

moi aussi j'adore C# c'est un langage de programmation parfait
Commenter la réponse de jihednond
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 1 nov. 2010 à 17:19
0
Utile
De rien
le plaisir est pour moi


C# is amazing, enjoy it!
Commenter la réponse de cs_Robert33

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.