Я пытаюсь написать кусок кода, чтобы установить изображение из 92 коробок с картинками, которые у меня есть в форме. Я не хочу писать один и тот же кусок кода 92 раза, поэтому мне было интересно, можно ли это сделать быстрее. Мой код:
public void drawRoute()
{
if (route1.line_00_R == null)
{
this.tabMap.Controls.Remove(this.line_00_R);
}
else if (route1.line_00_R == "Blue")
{
this.tabMap.Controls.Add(this.line_00_R);
this.line_00_R.Image = global::MijnenvegerController.Properties.Resources.Blue;
}
else if (route1.line_00_R == "Red")
{
this.tabMap.Controls.Add(this.line_00_R);
this.line_00_R.Image = global::MijnenvegerController.Properties.Resources.Red;
}
}
Надеюсь, что-то подобное возможно:
public void drawRoute()
{
for (//all values of {0})
{
if (route1.{0} == null)
{
this.tabMap.Controls.Remove(this.{0});
}
else
{
{1} = route1.{0}; // string that is the same as the name of the resource
this.tabMap.Controls.Add(this.{0});
this.{0}.Image = global::MijnenvegerController.Properties.Resources.{1};
}
}
}
где {0} и {1} - какие-то заполнители или переменные.
Надеюсь, кто-нибудь может мне помочь. Я только начал с C # на этой неделе, поэтому я надеюсь, что это не глупый вопрос. Заранее спасибо за помощь!
EDIT
Я нашел что-то, что, как мне кажется, я могу использовать, но я не знаю, как это реализовать:
public Control[] Find(
string key,
bool searchAllChildren
)
Метод Control.ControlCollection.Find (http://msdn.microsoft.com)
Я понимаю, что могу сделать это сейчас. Но я уже сделал все разные PictureBox, используя Disigner. Я «решил» очень грязным способом, используя этот код:
`
public void drawRoute ()
{
drawRoad (route1.line_00_R, this.line_00_R);
drawRoad (route1.line_00_U, this.line_00_U);
drawRoad (route1.line_01_D, this.line_01_D);
drawRoad (route1.line_01_R, this.line_01_R);
// и т. Д. 92 раза!
drawRoad(route1.line_6, this.line_6);
drawRoad(route1.line_7, this.line_7);
drawRoad(route1.line_8, this.line_8);
drawRoad(route1.line_9, this.line_9);
drawRoad(route1.line_10, this.line_10);
drawRoad(route1.line_11, this.line_11);
drawRoad(route1.line_12, this.line_12);
}
public void drawRoad(string color, PictureBox control)
{
if (color == null)
{
this.tabMap.Controls.Remove(control);
}
else if (color.Equals("Blue"))
{
this.tabMap.Controls.Add(control);
control.Image = global::MijnenvegerController.Properties.Resources.Blue;
}
else if (color.Equals("DarkRed"))
{
this.tabMap.Controls.Add(control);
control.Image = global::MijnenvegerController.Properties.Resources.DarkRed;
}
else if (color.Equals("Indigo"))
{
this.tabMap.Controls.Add(control);
control.Image = global::MijnenvegerController.Properties.Resources.Indigo;
}
else if (color.Equals("GreyBlue"))
{
this.tabMap.Controls.Add(control);
control.Image = global::MijnenvegerController.Properties.Resources.GreyBlue;
}
else if (color.Equals("Gold"))
{
this.tabMap.Controls.Add(control);
control.Image = global::MijnenvegerController.Properties.Resources.Gold;
}
else if (color.Equals("Orange"))
{
this.tabMap.Controls.Add(control);
control.Image = global::MijnenvegerController.Properties.Resources.Orange;
}
}
`