Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
vb.net变量正在重置_.net_Vb.net_Variables_Boolean_Reset - Fatal编程技术网

vb.net变量正在重置

vb.net变量正在重置,.net,vb.net,variables,boolean,reset,.net,Vb.net,Variables,Boolean,Reset,我试图在另一个窗体上引用VBNet中的布尔变量,但每当我引用它时,它就会被重置。例如,表格1: Dim flag as boolean = false 然后在某个地方我把它设置为真 然后,当我从另一种形式调用它时: 如果FORM1.flag=true,则 但随后它转到from1并将标志重置为false 如何使我的标志不重置 谢谢当您在外部表单中引用变量而该表单未加载时,将自动加载该表单的一个实例,您可以加载同一表单的两个实例。这可能会导致你提到的奇怪问题 使用全局变量(如flag)的一种简单方

我试图在另一个窗体上引用VBNet中的布尔变量,但每当我引用它时,它就会被重置。例如,表格1:

Dim flag as boolean = false
然后在某个地方我把它设置为真 然后,当我从另一种形式调用它时:

如果FORM1.flag=true,则

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

如何使我的标志不重置


谢谢

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

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


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

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