На форме имеется несоклько picturebox в отдельном panel, а так же textbox просто на форме, вне этой panel. В textbox содержатся координаты секторов "квадратного мира" и тип местности сектора ("X10Y20 001", где X10Y20 - координата участка мира, а 001 тип местности - скажем щебень). Всего в "мире" получается 608 секторов - следовательно 608 строчек в textbox'е.
Picturebox'ы отображают радиус обзора, скажем их 25 (5х5). У каждого picturebox'ов в свойстве tag прописана их текущая координата, например X13Y13. При нажатии кнопки вверх на клавиатуре все 25 picturebox'ов меняют координату, прибавляя к Y единичку. После этого вызывается private sub, который делает следующий код:
- Код: Выделить всё
For Each MCell In LocalMapPanel.Controls
For i = 0 To TextBox1.Lines.Length - 1
If (TextBox1.Lines(i).Substring(0, 6)).ToString = MCell.Tag Then
MCell.BackgroundImage = System.Drawing.Bitmap.FromFile("data/graphic/Enviroment/" + MapDll.Lines(i).Substring(7, 3) + ".jpg")
End If
Next
Next
Т.е. проверяется каждый picturebox на panel и ему присваивается картинка, соответствующая его местности.
Все работает так как надо, но уходит на каждый "шаг" по 1-3 секунды, что очень много, неужели проверка 608 строчек каждым из 25 объектов занимает такое время?