【问题标题】:vb.net Variables Getting Resetvb.net 变量重置
【发布时间】:2015-01-27 08:11:36
【问题描述】:

我试图在另一个表单上引用 VBNet 中的布尔变量,但每当我引用它时它就会被重置。以 FORM1 为例:

Dim flag as boolean = false

然后在某处我将其设置为 true 然后当我从另一种形式调用它时:

如果 FORM1.flag = true 那么.....

但随后它转到 from1 并将标志重置为 false。

我怎样才能让我的标志不被重置?

谢谢

【问题讨论】:

  • 您正在通过默认实例访问 Form1,这很可能不是正在显示的同一个实例。您需要对正确实例的引用。将该实例传递给您的其他表单,或者通过其他方式传达需要更改状态的事实(例如引发 Form1 订阅的自定义事件的其他表单)。
  • 标准 VB.NET 陷阱,该代码在工作线程上运行,因此创建了表单对象的 new 实例。一个你看不到的,因为它的 Show() 方法从未被调用过。了解类型(如 Form1)和对象引用之间的区别可能是一项挑战。

标签: .net vb.net variables boolean reset


【解决方案1】:

当您在外部表单中引用一个变量并且该表单未加载时,将自动加载该表单的一个实例,您最终可能会加载同一表单的两个实例。这可能会导致您提到的奇怪问题。

使用像flag 这样的全局变量的一种简单方法是创建一个模块(项目、添加模块)并在该模块中声明flag

替代方案是确保一次只加载一个 form1 实例,或者使用参数或类属性在表单之间进行通信。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多