Hi, I the main bug I can find in your code is that in the timer tick routine you are not invalidating the form, which means the form will never be redrawn when the snake is moved.
To fix this just add the line 'this.Invalidate()' after you've moved the snake.
Here is what your timer_Tick function should look like (without the collision detection code).
private void timer1_Tick(object sender, EventArgs e)
{
this.TSL_Score.Text = Convert.ToString(Score);
if (moveDown)
snake.MoveDown();
if (moveUp)
snake.MoveUp();
if (moveLeft)
snake.MoveLeft();
if (moveRight)
snake.MoveRight();
this.Invalidate();
}
Also the 'FRM_Snake_Load' function is not needed, as this is only called once when the form is loaded and this was where you were invalidating the form to redraw the snake, but this is ineffective.
Hope this helps.