2010-08-11 3 views
1

Мне было интересно, как я могу выбрать объекты, созданные во время выполнения программ. Каждый объект имеет свое уникальное имя. Как я могу выбрать этот объект по его названию?Поиск объектов по их названию

Пример названия:

"mapPart_0_0"
"mapPart_0_1"
"mapPart_0_2"
т.д.

Это окна формы проекта. В C#.

Создание этих объектов:

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

Можете ли вы опубликовать пример кода того, как эти объекты создаются? – Oded

ответ

5

Я хотел бы предложить, чтобы просто поместить объекты в System.Collections.Generic.Dictionary<string, your object type> списке. Он обеспечивает точную функциональность, которую вы ищете, если я правильно понимаю вопрос.

+0

Я согласен с Матиасом. Просто добавьте объекты, создавая их динамически, в словарь. Вы можете использовать Reflection, но это может привести к недопустимому штрафу во время выполнения (а Reflection in C# может быть подробным). –

Смежные вопросы