Hola, entiendo que hablás de controles de Windows Forms, verdad?
En realidad es poco común realizar este tipo de interfaces con este framework, esto tiene pinta de ser algo más adecuado para XNA o Unity o alguna cosa de esas de juegos de las que yo no tengo ni idea.
Aun así, centrándome en tu pregunta, entiendo que estarás moviendo un control por el formulario y tendrás otros controles que son las "paredes" de tu laberinto, ¿me equivoco?
De ser así, yo supongo que tendrás codificado de alguna forma en qué lugares hay paredes. Pues bien, cuando trabajamos con laberintos resulta más cómo codificar donde hay pasajes, de tal forma que si tu estado actual es (x,y), el movimiento que consiste
en pasar a (x',y) o (x,y') solo es factible si existe un pasaje {(x,y), (x',y)} o
{(x,y), (x,y')}, respectivamente.
Espero haberte sido de ayuda. Si no, explícanos un poco más en qué consiste el problema.
Salu2