vb.net公共共享字符串打开第二个表单时的松散值

时间:2016-05-24 08:38:22

标签: vb.net variables shared

我以这种方式将两个字符串声明为我的主要形式:

Public Shared SerNum As String = vbNullString
Public Shared SKey As String = vbNullString

然后我给他们一些价值。之后,我打开另一个表单,尝试从两个变量中获取值,但只有SerNum保留了他的值,SKey结果为Nothing

我反复检查了我的代码,但我没有找到这种情况发生的原因 第二种形式在给出价值后立即显示 我可以检查什么来查找错误?

目前我通过使用Public Shared Dictionary(of String, String)并将两个字符串放入其中来解决,但我想了解我错在哪里。

修改
我发现了错误:SKey也被声明为我的sub,因此该值未分配给Public Shared variable,而是分配给local variable
我以为我曾评论过#39;那一排......

1 个答案:

答案 0 :(得分:0)

我有一个从其他形式加入你的变量的命题: 在From main的名字中,“From1”必须如下:

Public Class Form1
    Public SerNum As String = vbNullString
    Public SKey As String = vbNullString


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim fr As New Form2(Me)
        SerNum = "ValueNum"
        SKey = "ValueKey"
        fr.Show()
    End Sub
End Class

来自“Form2”的借调:

Public Class Form2
    Dim fr As New Form1
    Public Sub New(fr As Form1)
        InitializeComponent()
        Me.fr = fr
    End Sub

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        MsgBox(fr.SKey)
        MsgBox(fr.SerNum)
     End Sub