VB.Net默认表单实例 [英] VB.Net default form instance

查看:17
本文介绍了VB.Net默认表单实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已替换(Regex)项目中对default form instances的所有访问,现在我希望确保不再使用默认实例。

看起来默认实例功能can't be disabled(不更改类的ctor)

任何人都知道如何在VB.Net中查找默认表单实例的所有用法(或-使用类名访问非共享成员)

仅供参考:我正在使用带有ReSharper的VS2017

推荐答案

与人们普遍认为的相反,在WinForm应用程序中生成默认实例不是Visual Basic的强制功能。

摘自《Visual Basic语言规范》版本11(已添加强调):

11.6.2默认实例在某些情况下,从公共基类派生的类通常或始终只有一个实例。为 例如,在用户界面中显示的大多数窗口都只有一个 实例随时显示在屏幕上。简化使用的步骤 这些类型的类,VB可以自动生成 类的默认实例,这些类轻松地提供单个 每个类的引用实例。

问题是,我知道没有任何文档告诉您如何启用/禁用它们的创建。众所周知,此功能是应用程序框架的一部分,可以在项目属性页的"应用程序选项卡"中启用/禁用该功能。但是,禁用应用程序框架不会禁用默认实例生成。

如果在创建项目时选择"Windows Forms App"模板,而是选择"Empty Project"模板并继续添加表单,则可以创建一个WinForm项目,其中的"Enable Application Frame"复选框呈灰色且不可选。您还会发现不能使用默认表单实例。由此推断,该功能可以通过"*.vbproj"文件进行配置。

控制项是<MyType>标记。此属性的可能值为:

  • 空-应用程序框架不可用
  • 控制台
  • WindowsForms-启用应用程序框架
  • WindowsFormsWithCustomSubMain-应用程序框架已禁用
  • Windows类库
  • WebControl-库

因此,如果要将现有项目转换为不支持默认实例的项目,可以编辑"*.vbproj"文件并将<MyType>属性更改为

请注意,这样做还会消除应用程序框架的其他功能,如My.ComputerMy.User,但您始终可以自己实现这些功能,如How to: Use the My Namespace (C# Programming Guide)中所述。

这篇关于VB.Net默认表单实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆