Source: https://social.msdn.microsoft.com:443/Forums/en-US/1e767a24-4d3e-46a6-b50a-15548d19aa8a/como-hacer-para-que-un-programa-se-ajuste-automaticamente-a-la-resolucion-de-pantalla?forum=vbes
Timestamp: 2016-09-28 03:33:14+00:00

Document:
Despu&eacute;s de dar tanta vuelta lo logr&eacute; y nunca pens&eacute; que fuera tan f&aacute;cil. Los formularios deben tener la propiedad
&quot;Autoscalemode&quot; en DPI, pues los par&aacute;metros utilizados en Sizef son valores DPI. Aunque se puede manejar en Font, pero me
pareci&oacute; mejor as&iacute;.
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String ancho = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size.Width.ToString();//Obtengo el ancho de la pantalla
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String alto = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Size.Height.ToString();//Obtengo el alto de la pantalla
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String tamano = ancho &#43; &quot;x&quot; &#43; alto;//Concateno para utilizarlo en el switch
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; switch(tamano){
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case &quot;800x600&quot;:
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cambiarResolucion(formulario, 110F, 110F);//Hago el ajuste con esta funci&oacute;n
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case &quot;1024x600&quot;:
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cambiarResolucion(formulario, 96F, 110F);
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cambiarResolucion(formulario, 96F, 96F);
&nbsp; &nbsp; &nbsp; private static void cambiarResolucion(System.Windows.Forms.Form formulario, float ancho, float alto)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; formulario.AutoScaleDimensions = new System.Drawing.SizeF(ancho, alto); //Ajusto la resoluci&oacute;n
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; formulario.PerformAutoScale(); //Escalo el control contenedor y sus elementos secundarios.
Thursday, October 06, 2011 1:53 PM
Thursday, October 06, 2011 4:49 PM
Genial! No olvides marcar el hilo como contestado cuando creas oportuno, gracias! Friday, January 04, 2008 7:47 AM
Hola Eimis, disculpa que te escriba aun cuando tu posteaste tu problema en diciembre del 2007, pero te pregunto si encontraste la solución. Yo he buscado por todos los foros, literalmente he estado meses buscando como hacer que mis aplicaciones se adapten a la resolución del monitor del usuario, pero no he podido encontrar como hacerlo, he probado muchos códigos e inclusive trabajados con ocx que se suponen que hacen el trabajo, pero funciona de manera muy lenta.La propiedad Anchor y Dock no sirven para el problema ellas sólo acomodan los objetos en proporción al formulario, pero cuando cambias de resulución todo se deforma, se agranda o empequeñese, los objetos mantienen su distancias desde los lados pero en algunos casos no se ven en pantalla.Por eso la solución no pasa por los Anchor y dock de eso estoy seguro.Además no se si NET permite hacer esto de manera automatica o simplemente debo tratar de escalarlo con programacion leyendo la resolucion del usuario y cambiando sus tamaños cuando encuentre una u otra resolución, pero no he encontrada nadie que me diga que NET no lo hace automatico, por eso he seguido buscando.Se que tu tuviste o tienes el mismo problema y te agradeceria si le encontraste solución que me ayudaras, si es posible
He hecho una aplicación de visual basic net con visual studio 2010 y me pasa eso, que si diseño con una resolución de 1280/1024....... cuando luego ejecuto en un monitor con una resolución distinta no se ve bien...... si es de
800/600, por ejemplo, se ve todo enorme.
Por lo que yo he leido existe la variable "autoscaledimensions" que guarda la resolución que hay durante el diseño y luego la variable "currentautoscaledimensions" que guarda la resolución en la ejecución y cuando se inicia
se comprueba automàticamente si son distintas y si no son iguales se ejecuta un procedimiento que hace el escalado automàticamente.
Tambien he probado de hacer un escalado manual poniendo "scale(factor de ancho, factor de alto)" en el load del formulario de inicio, y efectivamente el formulario y todos los controles se ajustan a la escal que le digo.... pero los textos y los graficos
Hola el prgrama o los formularios siempre se ajustaran a la pantalla del cliente ya sea el tamaño que sea el problema es que hay pantallas que traen la resolucion muy baja osea los mega pixeles unas se ven con mucho aumento otras se ven ajustadas
y otras nomales.. esto no es por desirlo asi por el tipo del proyecto o por el tipo de tu programa esto tiene que ver lo con la resolucion de los graphics del screen. y es por eso que tu programa se ve con muy no buena apariencia
espero te ayude.Mark the better answers for you,do not turn off your mind
Quizás esté aquí la solución, hay que hacer pruebas con todos las propiedades y métodos que se indica en el enlace que por falta de tiempo no lo pude llevar a cabo, por lo que podríais echar un vistazo a ver si conseguís
algo vosotros.
Un saludo. Sunday, October 17, 2010 5:41 PM
Que tal, yo se que han pasado años desde que inicio este hilo pero ahi les va el dato, yo encontre un proyecto que hace el ajuste a la resolucion en la que este contruido el proyecto y en caso de realizar la instalacion en una maquina con resolucion
diferente se siga respetando el tañalo original de los objetos, el unico detalles son la fuentes, ya lo veran por ustedes mismos: http://www.codeproject.com/KB/dotnet/Resolution_Independent.aspx
Hola Cristian, me interesa su respuesta , he intentado esto y no lo he logrado, le agradezco si me pudiera regalar un ejemplo de ayuda o algo asi, mi correo es
yonormal@hotmail.com
..tengo el mismo de problema, necesito que mi aplicacion se ajuste a diferentes resoluciones de pantalla pero no se como hacerlo. La solucion me parece interesante pero tengo varias dudas. ¿El codigo en donde lo pongo? Comó hago para llamar
esa clase?
por ejemplo: dim VResolucion as New ClsResolucion
pepe_tony
PublicFunctionESCALIZARPANTALLA(ByValforma
AsSystem.Windows.Forms.Form)
DimintX
DimintY
DoWhileciclo
< forma.Controls.Count
NewSize(((forma.Controls.Item(ciclo).Size.Width
* intX) / forma.Size.Width), ((forma.Controls.Item(ciclo).Size.Height * intY) / forma.Size.Height))
NewPoint(((forma.Controls.Item(ciclo).Location.X
* intX) / forma.Size.Width), ((forma.Controls.Item(ciclo).Location.Y * intY) / forma.Size.Height))
NewSystem.Drawing.Font(forma.Controls.Item(ciclo).Font.FontFamily,
(forma.Controls.Item(ciclo).Font.Size * z))
forma.Size = NewSystem.Drawing.Size(intX,
intY)
&quot;Autoscalemode&quot; en DPI, pues los parámetros utilizados en Sizef son valores DPI. Aunque se puede manejar en Font, pero me
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cambiarResolucion(formulario, 110F, 110F);//Hago el ajuste con esta función
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; formulario.AutoScaleDimensions = new System.Drawing.SizeF(ancho, alto); //Ajusto la resolución
Lo he intentado con el código que has puesto Cristian, pero el método AutoScaleDimensions no me funciona, no sé por qué motivo, pero le intento asignar cualquier valor y siempre me da el mismo (96F,96F), ¿a alguien se le ocurre porqué? He cambiado el autoscaleMode
a DPI, Font, None y nada, e incluso he cambiado la resolución de la pantalla y sigue con exactamente el mismo valor AutoScaleDimensions... por favor ayuda!
Friday, August 17, 2012 2:46 PM
hola que tal YORDING_CALA la verdad e intentado y buscado por todos lados una resolucion para este problema que se ha vuelto un tormento para muchos que hemos realizado una aplicacion y nos encontramos con este problemon ya que e buscado y buscado
y no encontre una solucion a esto por favor me podrias enviar un ejemplo de dicho problema me salvarias de volver a realizarlo pero ahora en miniatura ya que la resolucion de mi pantalla es de 1366 y la quiero pasar a una de 1024 (vaya problema que me a resultado
Mi correo es: chriserc@outlook.comChristian Ramirez Castillo (PERU) Soporte Tecnico - Programador
perdonen amigos me habia olvidado de este post aqui le adjunto el archivo al que le haya servido marquela como util o como respuesta Ajustar resolucion en c#
Thursday, August 23, 2012 1:44 AM
de nada hermano yo tambien llevava mucho tiempo buscandolo y me meti ha este foro y encontre algo que me ayudo ha solucionarlo, era de un men arriba en el foro aunque estaba muy incompleto y no me terminaba de dar, lo que le faltaba era un foreach que me
recorriera todos los controles y dependiendo de la resolucion me lo ajustara, tambien le falta ajustar el tamaño de la fuente de cualquier tipo de letra este problema no fue para nada facil de solucionara y le faltaba ajustar el formulario a la resolucion.
y en unos dias me pongo a realizar el ejemplo para visual basic, y hay perdonemen a los que estuvieron esperando tanto tiempo a que les enviaran el ejemplo sino que hace dias no ingresaba a los forosYording cala
le di dos variables preterminadas porque es la resolucion con la que mejor se ve en mi pc, pero este ejemplo funciona para cualquier resolucion solo mandale las variables de ancho y alto con la que mejor se ve tu pc y ya esta, no hay necesidad de hacer esto,
un brother de mas arriba del foro etiqueto un ejemplo con lo que estas planteando yo tambien lo intente pero no sucedia nada, entonces mejor desisti de eso
Friday, August 17, 2012 4:41 PM
Saturday, September 15, 2012 12:04 AM
Yording_cala puxa hermano eres el mejor gracias por el codigo,... estoy seguro que a todos les ha pasado el problema de ajustar form a cualkier pantalla.
yashrahul fue
todo un placer la ayuda a mi tambien me pasaba este error y fue muy duro conseguir una buena solucion, se que el demo no esta del todo completo aun le falta cositas, por eso espero que el tenga una mejor solucion la publique para que todos nos retroalimentes
de este. y para eso existen este tipo de plataformas para que todos compartamos nuestro conocimientosYording cala
Saludos a todos, hace un tiempo tenía un programa en vb6 que se ajustaba perfectamente a cualquier resolución. Pero ni idea donde esta. Voy a tomar el ejemplo que el amigo Yording_cala proporciona y espero poder ayudar... Saludos y gracias por otorgar
sus conocimientos.Enyelber Altube
Friday, May 16, 2014 1:51 AM
Buenas noches.. posiblemente ya no estes en este foro.. pero queria decirte que yo utilizo V.B 6.0 y me sucede que no puedo ajustar un programa creado a cualquier resolucion, y no logro comprender tu codigo... me seria de gran ayuda que me dieras una mano,
desde ya.. muchas gracias! :) mi correo es crissanabria_95@hotmail.com

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución

 resolución