Mira estuve provando el siguiente codigo: private void Form1_Load(object sender, EventArgs e) { MessageBox.Show("X: " + Convert.ToString(this.Location.X) + " Y: " + Convert.ToString(this.Location.Y)); } El cual si te da las coordenadas del form activo, puedes debugging para ver si te esta enviando las coordenadas correctamente.Otro detalle es calcular el tamaño de la form para ver si el boton se sale de alli, this.Location.X y el Y te dan el inicio del form ose la esquina superior izquierda de alli debes de calcular que tanto se debe de mover el mouse hacia la derecha o hacia la abajo dependiendo de la coordenada que se encuentra actualmenteEspero sirva!