如何从模块 1.vb 范围内观察 Form1.vb 变量


在我的 Module1.vb 代码中,如果我将监视分配给 Form1.Width,则会收到错误"

对非共享成员的引用需要对象引用",如果我将监视分配给 Form1,则会收到错误"Form1 是一种类型,不能用作表达式"

但是,Debug.Print Form1.Width有效。

我在这里读(https://msdn.microsoft.com/en-us/library/aa262343(v=vs.60).aspx)那

Visual Basic 为每个窗体类创建一个隐藏的全局对象变量。 就好像 Visual Basic 已将以下声明添加到您的项目中:Public Form1 As New Form1

Visual Studio Watch 是否坚持将 Form1 作为类而不是实例(如 Debug.Pring)访问?

我错过了一些明显的东西吗?

编写自己的代码时,以这种方式使用 Form1 会引用默认实例。 调试器不支持默认实例。 您需要将默认实例分配给字段或属性,然后监视它。

调试器不支持默认实例的一个原因可能是它们是特定于线程的。 如果您中断了多个线程,然后想要监视默认实例,您会为哪个线程监视它? 我想你可以默认使用 UI 线程,但这样你就不能观看任何其他线程,它也可能被认为不够明显。

最新更新