Si sigues mi blog habitualmente puede que recuerdes un par de "post" que hice hace unos meses en los que explicaba la manera de habilitar los estilos visuales de Windows XP en las aplicaciones de Windows para conseguir un aspecto más moderno.

La activación pasa ineludiblemente por el uso del método estático EnableVisualStyles de la clase Application combinado con la propiedad FlatStyle de los distintos controles.

Aunque esto funciona de maravilla en Windows XP hay un problema cuando la misma apliación se intenta ejecutar en sistemas operativos más antiguos en los que no esté presente la biblioteca responsable del efecto (uxtheme.dll). En .NET 2.0 han tenido en cuenta esta particularidad y la aplicación se degrada de maravilla, pero en .NET 1.x las aplicaciones rompen, lo cual no es muy recomendable ¿verdad?.

Bueno, la solución es bastante sencilla ya que basta con comprobar en que versión de Windows se ejecuta la aplicación antes de establecer la propiedad EnableVisualStyles, así:

Código C#:

if(Environment.OSVersion.Platform == PlatformID.Win32NT &&
   Environment.OSVersion.Version.Major >= 5)
  {
   if (OSFeature.Feature.IsPresent(OSFeature.Themes))
   {
    Application.EnableVisualStyles()
   }
  }

Código VB.NET:

  If ((Environment.OSVersion.Platform = PlatformID.Win32NT) _
    AndAlso (Environment.OSVersion.Version.Major >= 5)) Then
      If OSFeature.Feature.IsPresent(OSFeature.Themes) Then
        Application.EnableVisualStyles()
      End If
  End If

Con esto solucionamos el problema de un posible error de inicio de la aplicación.

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA