VB.NET将值传递给其他窗体的最佳方式是什么?

VB.NET将值传递给其他窗体的最佳方式是什么?,vb.net,parameter-passing,Vb.net,Parameter Passing,我有两个表单使用相同的连接字符串,例如 Dim connStr as String=“Server=localhost;Database=tester;Uid=root;Pwd=123” 上面的代码放在表格1中。所以在我的表单2中,我将再次使用相同的连接字符串。与其将其复制并粘贴到下一个表单,最好的方法是什么 我已尝试将此代码,Public Property connString作为String=“bla..bla”用于Form2。然后在Form1中,我让它像这样保存相同的字符串Form2.co

我有两个表单使用相同的连接字符串,例如

Dim connStr as String=“Server=localhost;Database=tester;Uid=root;Pwd=123”

上面的代码放在表格1中。所以在我的表单2中,我将再次使用相同的连接字符串。与其将其复制并粘贴到下一个表单,最好的方法是什么

我已尝试将此代码,
Public Property connString作为String=“bla..bla”
用于Form2。然后在Form1中,我让它像这样保存相同的字符串
Form2.connString=connStr


这是在表单之间传递值的正确方法吗?或者有没有合适/更好的方法来实现这一点?

创建构造函数并将参数作为要在表单之间传递的值传递,如下所示

Sub New(ByVal s As String, i As Integer)

从不同形式传递或调用变量的最佳方法是创建一个模块

打开Visual Studio,从菜单栏中单击项目>添加模块…>选择模块>确定

从那里,您可以声明您的全局变量

Module Module1
   Public connStr as String = "Server = localhost; Database = tester; Uid = root; Pwd = 123"    
End Module
现在可以从不同的形式调用变量“connStr”


从Form1和Form2中,您可以调用此全局变量,就好像它们是本地变量一样。

ConnectionString应该通过项目的属性设置存储在app.config(web.config)中。然后,您可以使用ConfigurationManager读取该值。ConnectionString[keyOfYourString]。ConnectionString不要在程序中硬编码,当然也不要在表单之间传递。最常见的方法是将连接字符串等内容从用户界面中抽象出来。也就是说,您应该有一个单独的类(甚至是类)来处理数据库连接。对于该类,您可以实例化知道连接字符串的对象。但即使在这些情况下,您也不会硬编码连接-您应该从配置(例如app.config或web.config)检索连接。谢谢@Steve!将从我的错误中吸取教训。
Form2
似乎是类名。应该创建表单对象(
Dim f作为新表单2
)。允许使用默认实例(在VB中)作为VB6的保留。“它迟早会咬你的。”我已经明白你的意思了。这只是一个例子。在我的真实代码中,我使用
new
。示例
将f1的尺寸调整为Form2
f1=new Form2()
f1.Show()
f1=Nothing
。谢谢。那么,从其他形式上如何称呼它呢?你可以简单地称呼它,就像称呼局部变量一样。谢谢。我接受了你的回答。请更新它,以显示关于如何调用它的完整指南是的,它可以工作。但我不确定这是否是最好的方法。因为如果你的表单在你的模块中有相同的变量名,它会变得非常混乱你的连接字符串不会改变,对吗?因此,您可以为您的连接分配一个特定的变量名。如果要有多个连接,请为它们创建另一个变量。