我需要在 VB.NET 中的两个窗体之间共享变量。其中一个是主窗体,另一个是子窗体。
我一直在寻找,找到了一些方法。我想用最好的方法来做到这一点。我在下面列出了几个选项。请评论哪一个是最佳选择:
-
在其中一种形式中创建静态/共享变量,并通过以下方式在其他形式中访问它:
Form1 frm = new Form1(); // Creating object of parent to access shared variable
frm.a = "abc"; // Passing value
创建子窗体时将主窗体的实例发送到子窗体。然后可以通过属性函数访问这些变量。
在模块中创建全局变量。这似乎是最简单的选择,但我怀疑这是最好的选择。
我还阅读了一些有关代表和事件的内容,但我不知道如何实现这一点。
如果还有其他我没有提到的方法,请与我分享。
这个问题没有一个答案。您列出的所有方法都应该“有效”。您应该使用哪个取决于您想要共享变量的原因。例如:
假设您有一个包含记录列表的表单,并且用户双击了一条记录,因此您想要打开一个新表单来编辑该记录,并且想要传递记录 ID。在这种情况下,我将向第二种形式添加一个构造函数方法:
子新建(RecordID 作为字符串)
'在此处添加加载记录的代码
结束子
假设应用程序中的某些表单可能想知道数据库路径或其他类似的全局信息。为此,我会将父表单上的适当变量设置为公共变量(称为“字段”),并以 MainForm.FieldName 的形式访问它。 (免责声明:纯粹主义者会说您不应该依赖这样一个有点混乱的事实:VB.NET 自动实例化表单类的实例并让您通过表单名称引用它,而您应该获得一个指向实际表单类的指针。表单的实例并将其存储在您的子表单中,然后像这样访问父表单。实际上,这就像您帖子中的数字“2”。但如果您不介意程序错误,则实际上没有必要。)
假设您的应用程序中有一些全局信息,例如应用程序启动的时间,那么您可以告诉用户“您已经使用该应用程序 5 个小时了,开始生活吧!”这些东西可以存储在模块中。 (或者在应用程序类中,但这是相当隐藏的)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)