массив picturebox'ов С#
Здравствуйте. Помогите плиз написать массив, который каждый раз меняет расположение pictureBoxа на форме.
Массив хранит данные, он ничего не меняет. О чём речь?
Код:
private void timer1_Tick(object sender, EventArgs e)
{
Random rnd = new Random();
pictureBox1.Top += (pictureBox1.Height / 2);//Задаем движение препятствия
if (pictureBox1.Top + pictureBox1.Height >= this.Height) //Дошло ли препятствие до нижней границы
{
pictureBox1.Visible = false;
pictureBox1.Top = 1;
//Препятствие не должно выходить за левую или правую границу
do
pictureBox1.Left = rnd.Next(450 - Car.Width);
while (pictureBox1.Left > 10);
pictureBox1.Visible = true;
}
{
Random rnd = new Random();
pictureBox1.Top += (pictureBox1.Height / 2);//Задаем движение препятствия
if (pictureBox1.Top + pictureBox1.Height >= this.Height) //Дошло ли препятствие до нижней границы
{
pictureBox1.Visible = false;
pictureBox1.Top = 1;
//Препятствие не должно выходить за левую или правую границу
do
pictureBox1.Left = rnd.Next(450 - Car.Width);
while (pictureBox1.Left > 10);
pictureBox1.Visible = true;
}
В таком варианте pictureBox1 ,после того как прошел до конца формы, появляется а правом верхнем углу. И больше своё расположение не меняет((.А надо, что бы он появлялся каждый раз в новой части формы.
Цикл do - while не нужен.
Примерно так:
Код:
pictureBox1.Left = rnd.Next(this.Width - pictureBox1.Width);
Генератор случайных чисел rnd лучше сделать полем класса. Незачем создавать новый объект каждый раз при тике таймера: это лишняя нагрузка на систему. И сборщик мусора лишний раз заставляем трудиться.