2011-07-20 20 views
28

Soy muy exigente en lo que respecta a la comprensión de un nuevo idioma, y ​​recientemente empecé aprendiendo C#. Entonces, me gusta saber todo lo que sucede cuando creo una nueva Aplicación, en este caso, una nueva Aplicación de Windows Forms. Creé uno y me dieron un código generado de Visual Studio y una línea fue Application.EnableVisualStyles().¿Application.EnableVisualStyles() hace algo?

hice una investigación en MSDN y encontramos este artículo: Application.EnableVisualStyles(). Realicé el ejemplo que presentaron esperando que el botón no se viera cuando comenté dicha línea. ¡No pasó nada! Parecía que nada había cambiado. Sé que este es un ejemplo muy básico, pero ¿no debería haber cambiado algo? Si esto es tan crítico en el procedimiento Main(), ¿qué está haciendo exactamente lo que me falta?

+5

+1 Sabes que la documentación de la API es mala cuando alguien tiene que preguntar si una determinada API _hace algo_. –

Respuesta

30

sí lo hace, pero hay que tener ciertas configuraciones activadas en su sistema operativo de lo contrario no será capaz de ver lo que es.

Estas son algunas capturas de pantalla de la misma aplicación en mi sistema:

Application.EnableVisualStyles(); 

With visual themes

// Application.EnableVisualStyles(); 

Without visual themes

Si los botones en otras aplicaciones se ven como la segunda pantalla entonces siempre vea los botones sin temática independientemente de si usa Application.EnableVisualStyles(), ya que están desactivados por Sistema operativo: la forma de volver a encenderlos depende de su sistema operativo, pero generalmente implica ir al cuadro de diálogo Rendimiento >>Efectos visuales.

12

Enciende los dibujos de stock más creativos de las barras de desplazamiento y botones y tal. Si es falso, se obtiene los controles de valores grises de fricción, etc.

enter image description here

8

EnableVisualStyles() no significa que los botones se dibujan ahora visualmente cuando se ejecuta este método, significa que va a utilizar el built-in Windows adora los controles de estilo en lugar de la apariencia clásica de Windows. Si su computadora se está ejecutando sin un estilo, entonces no notará ninguna diferencia.

Esta respuesta puede ser interesante para usted, así: Should I call Application.EnableVisualStyles() on terminal services?

3

Esto es lo que tengo de soporte técnico de Microsoft en respuesta a una consulta oscura caída de aplicación:

Lo esencial es que el choque es un problema conocido en la versión 5.0 de comctl32.dll (controles comunes de Windows), que se envía con el sistema operativo Windows. Este error no se solucionará en la versión 5.0 de los controles comunes, porque esa versión era para aplicaciones existentes antes de Windows XP. Desde entonces se ha corregido en la versión 6.0 de comctl32.dll, que se incluye con Windows XP y posterior. Tenga en cuenta que ambas versiones de comctl32.dll (5.0 y 6.0) están incluidas en todas las versiones de Windows desde Windows XP. El anterior está ahí para fines de compatibilidad con versiones anteriores para aplicaciones muy antiguas.

Para resolver el problema, debe cambiar la aplicación para que opte por la versión 6.0 de comctl32.dll. Dentro de una aplicación de Windows Forms, esto se realiza llamando al método Application.EnableVisualStyles al inicio de la aplicación. Si está desarrollando dentro de un proyecto de C#, puede hacerlo agregando la llamada antes de su aplicación. Ejecute la llamada dentro del punto de entrada de su aplicación.Por ejemplo:

[STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); //Add this line 
     Application.Run(new Form1()); 
    } 

Si se encuentra en un proyecto de Visual Basic .Net, se puede optar en esto de ir a las propiedades del proyecto, y luego seleccionando las casillas de verificación "Habilitar marco de aplicaciones" y "Habilitar XP estilos visuales" en la página de propiedades de la aplicación.

Cuestiones relacionadas