2010-08-11 6 views
1

Je me demandais comment sélectionner les objets créés lors de l'exécution des programmes. Chaque objet a son nom unique. Comment pourrais-je sélectionner cet objet par son nom?Recherche d'objets par leur nom

noms Exemple:

"mapPart_0_0"
"mapPart_0_1"
"mapPart_0_2"
etc.

C'est un projet sous forme de fenêtres. En C#.

Création de ces objets:

private void addBoxes() 
    { 
     for (int a = 0; a < 25; a++) 
     { 
      for (int b = 0; b < 10; b++) 
      { 
       MyCustomPictureBox box = new MyCustomPictureBox(); 
       box.Location = new Point(b * 23 + 5, a * 23 + 5); 
       box.Image = new System.Drawing.Bitmap("tiles/0.png"); 
       box.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; 
       box.Size = new Size(24, 24); 
       box.Name = "mapPart_" + a + "_" + b; 
       box.Click += new EventHandler(boxClickAdd); 
       box.oFile = "0"; 
       panel1.Controls.Add(box); 
      } 
     } 
    } 
+0

Pouvez-vous publier un exemple de code de la façon dont ces objets sont créés? – Oded

Répondre

5

Je suggère de simplement mettre les objets dans une liste System.Collections.Generic.Dictionary<string, your object type>. Il fournit la fonctionnalité exacte que vous recherchez si je comprends bien la question.

+0

Je suis d'accord avec Mathias. Ajoutez simplement les objets, tels que vous les créez dynamiquement, à un dictionnaire. Vous pouvez utiliser Reflection, mais cela peut entraîner une pénalité d'exécution inacceptable (et Reflection in C# peut être verbeux). –

Questions connexes