Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Application.EnableVisualStyles()有什么作用吗?_C#_Visual Studio 2008 - Fatal编程技术网

C# Application.EnableVisualStyles()有什么作用吗?

C# Application.EnableVisualStyles()有什么作用吗?,c#,visual-studio-2008,C#,Visual Studio 2008,在理解一门新语言时,我非常挑剔,最近我开始学习C。因此,我想知道在创建新应用程序时发生的一切——在本例中是一个新的Windows窗体应用程序。我创建了一个,并从Visual Studio获得了一些生成的代码,其中一行是Application.EnableVisualStyles() 我对MSDN做了一些研究,发现这篇文章:。我执行了他们给出的示例,希望在我注释掉上述行时按钮不可见。什么也没发生!看来没有什么变化。我知道这是一个非常基本的例子,但事情不应该改变吗?如果这在Main()过程中非常关键

在理解一门新语言时,我非常挑剔,最近我开始学习C。因此,我想知道在创建新应用程序时发生的一切——在本例中是一个新的Windows窗体应用程序。我创建了一个,并从Visual Studio获得了一些生成的代码,其中一行是
Application.EnableVisualStyles()


我对MSDN做了一些研究,发现这篇文章:。我执行了他们给出的示例,希望在我注释掉上述行时按钮不可见。什么也没发生!看来没有什么变化。我知道这是一个非常基本的例子,但事情不应该改变吗?如果这在Main()过程中非常关键,那么它到底在做什么,而我却遗漏了?

它会打开更具创造性的滚动条和按钮等库存图形。如果为false,则得到纯灰色的库存控件等

启用VisualStyles()
并不意味着在运行该方法时可以直观地绘制按钮,而是意味着它将使用内置的窗口主题来设置控件的样式,而不是“经典窗口”的外观。如果您的计算机运行时没有样式,那么您不会注意到任何差异


您可能也对这个答案感兴趣:

是的,但您需要在操作系统中打开某些设置,否则您将无法看到它是什么

以下是我的系统上相同应用程序的一些屏幕截图:

Application.EnableVisualStyles();


如果其他应用程序中的按钮看起来像第二个屏幕截图,那么无论您是否使用
Application.EnableVisualStyles()
,您都会看到没有主题的按钮,因为它们是由操作系统关闭的-将它们重新打开的方式取决于您的操作系统,但通常需要转到性能视觉效果对话框。

这是我从Microsoft支持部门得到的对一个模糊的应用程序崩溃查询的响应:

要点是,崩溃是Windows操作系统附带的comctl32.dll(Windows通用控件)5.0版中的一个已知错误。此错误不会在通用控件的5.0版本中修复,因为该版本适用于Windows XP之前的应用程序。此后,它已在6.0版的comctl32.dll中修复,该版本包含在Windows XP及更高版本中。请注意,自Windows XP以来,每个版本的Windows都包含comctl32.dll的两个版本(5.0和6.0)。旧版本只是为了非常旧的应用程序的向后兼容性

要解决此问题,您需要更改应用程序,使其选择comctl32.dll的6.0版。在Windows窗体应用程序中,这是通过在应用程序启动时调用application.EnableVisualStyles方法来完成的。如果您是在C#项目中开发的,那么您可以通过在应用程序之前添加调用来实现这一点。在应用程序的入口点内运行调用。例如:

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

如果您在Visual Basic.Net项目中,您可以通过转到项目属性,然后选择应用程序属性页上的“启用应用程序框架”和“启用XP视觉样式”复选框来选择此选项。

+1当有人询问某个特定API是否有任何作用时,您知道API文档是不好的。
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();   //Add this line
        Application.Run(new Form1());
    }