代码之家  ›  专栏  ›  技术社区  ›  user310291

WindowsFormsApplicationBase在C语言命名空间中不存在吗?

  •  7
  • user310291  · 技术社区  · 14 年前

    我看到WindowsFormsApplicationBase位于Microsoft.VisualBasic.ApplicationServices命名空间中

    2 回复  |  直到 14 年前
        1
  •  10
  •   Ani    14 年前

    它没有人们想象的那么贵。这个 WindowsFormsApplicationBase 已调用程序集 Microsoft.VisualBasic.dll even when just the client profile is present.

    所以使用这个类的唯一真正“代价”是加载 Microsoft.VisualBasic.dll

        2
  •  1
  •   Sam Hobbs    7 年前

    要回答是否需要将WindowsFormsApplicationBase添加到C程序的问题,不需要。C程序使用 Application Class . WindowsFormsApplicationBase有一些单独提供的内容。例如,WindowsFormsApplicationBase的ApplicationContext属性有一个ApplicationContext类实例,可以在C#中创建。

    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
    

    这实际上是除了Form1类之外的整个应用程序。在VB.Net中,处理隐藏在WindowsFormsApplicationBase类中。WindowsFormsApplicationBase.OnStartup和WindowsFormsApplicationBase.OnShutdown方法在C中是完全不必要的,因为在VB.Net中放在它们中的代码可以简单地放在C主方法中。WindowsFormsApplicationBase类有没有人需要的DoEvents方法,C程序员知道这一点。WindowsFormsApplicationBase类支持启动屏幕,在C中没有类似的功能,但在C中,我们可以通过多种方式实现启动屏幕。