El problema es que la propiedad de fuente de un formulario o un control especifica el tamaño de fuente en los puntos. Esa es una medida que afecta la altura de las letras cuando cambia la configuración de DPI. Un punto es 1/72 pulgadas. El DPI por defecto, 96 puntos por pulgada y un tamaño de fuente de 9 puntos produce una letra que es 9/72 x 96 = 12 píxeles de alto.
Cuando el usuario aumenta la configuración de PPP a, por ejemplo, 120 DPI (125%), la letra se convierte en 9/72 x 120 = 15 píxeles de alto. Si no permite que el control aumente, el texto ya no cabe en el control. Muy feo para mirar.
La propiedad Form.AutoScaleMode soluciona este problema. Comprueba a qué tamaño se diseñó el formulario y lo compara con el DPI en la máquina en la que se ejecuta. Y cambia el tamaño y reubica los controles para asegurar que este tipo de recorte no ocurra. Muy útil, es completamente automático sin que tengas que hacer nada al respecto.
El problema típico es el bit de "reubicación" en el párrafo anterior. Si le da a los controles su propio tamaño de fuente en lugar de heredar el tamaño del formulario o si el diseño automático del formulario no es kosher, los controles pueden terminar en el lugar equivocado, destruyendo el aspecto organizado del formulario.
Tiene que corregir eso, no está claro por su pregunta cuál podría ser el origen del problema. Intentar evitar que este escalado automático haga su trabajo no es sostenible. Tendrá que repetir todos los controles en el formulario y cambiar su fuente, eligiendo un tamaño de letra más pequeño. Sin embargo, esto te meterá en problemas dentro de un par de años, si no es que ya lo has hecho. Su usuario se va a quejar de tener que trabajar con un sello postal.
La forma más fácil de depurar el problema de diseño, evitando el dolor de cambiar constantemente el tamaño DPI, es para pegar temporalmente este código en tu clase formulario:
protected override void OnLoad(EventArgs e) {
this.Font = new Font(this.Font.FontFamily, this.Font.SizeInPoints * 125/96);
base.OnLoad(e);
}
¿Por qué quieres actuar en contra de los deseos del usuario? – CodesInChaos
Posiblemente porque arrojará las vistas y tendrá desbordamientos que serán difíciles de solucionar para cada caso. Sería una solución más rápida para simplemente "tamaño de fuerza de manta". Es una solución de parche, como dijiste, porque no es lo mejor para el usuario, pero ese es mi 2c. – eggy