Я хочу создать симулятор, который показывает, как объект (который является DataGridViewImageCell
) может двигаться по порядку (ранее выбранные ячейки), вот как это работает:

Когда я нажимаю на кнопку, я хочу, чтобы красный квадрат автоматически перемещался из одной ячейки (синей) в другую.
В коде я получаю позицию красного ячейка, то я не ищу ни одной ячейки null
до go, я хочу видеть изображение, движущееся как игры (другими словами, создающее режим запуска), мне нужен таймер для этого? Я действительно не нашел никаких документов, которые могли бы помочь.
{
// get red image position
for (int r = 0; r <= myNewGrid.Rows.Count - 1; r++)
{
//This for loop loops through each column, and the row number
for (int c = 0; c <= myNewGrid.Columns.Count - 1; c++)
{
if (myNewGrid.Rows[r].Cells[c].Value == red)
{
CPOS = c;
RPOS = r;
}
}
}
//call function move that will return selected cells
Move(RPOS, CPOS);
}
private void Move(int rPOS, int cPOS)
{
while (running == true)
{
if ((myNewGrid.Rows[rPOS].Cells[cPOS - 1].Value != null) && (myNewGrid.Rows[rPOS].Cells[cPOS - 1].Value != red))
{
cPOS = cPOS - 1;
movebyone(rPOS, cPOS);
//System.Threading.Thread.Sleep(4000);
}
else if ((myNewGrid.Rows[rPOS - 1].Cells[cPOS].Value != null) && (myNewGrid.Rows[rPOS - 1].Cells[cPOS].Value != red))
{
rPOS = rPOS - 1;
movebyone(rPOS, cPOS);
}
else if ((myNewGrid.Rows[rPOS].Cells[cPOS + 1].Value != null) && (myNewGrid.Rows[rPOS].Cells[cPOS + 1].Value != red))
{
cPOS = cPOS + 1;
movebyone(rPOS, cPOS);
}
else if ((myNewGrid.Rows[rPOS + 1].Cells[cPOS].Value != null) && (myNewGrid.Rows[rPOS + 1].Cells[cPOS + 1].Value != red))
{
rPOS = rPOS + 1;
movebyone(rPOS, cPOS);
}
else
{
MessageBox.Show("pls verify your schema..something wrong!!");
break;
}
}
}
private void movebyone(int rPOS, int cPOS)
{
myNewGrid.Rows[rPOS].Cells[cPOS].Value = red;
}