I have two forms, the main (Main.vb) program window and a pop-up that appears when the program is started (getInitialBalance.vb). I need to get a value entered into the PopUp window from the popup window to the Main program. The relevant code is shown below:

getinitialbalance.vb

Public Class GetInitialBalance
    Public initialBalance As Integer

    Private Sub btnApplyInitialBal_Click(sender As Object, e As EventArgs) Handles btnApplyInitialBal.Click
        Dim textinput As Integer = txtInitialBalance.Text
        initialBalance = textinput
        Me.Close()
    End Sub
End Class

Main.vb

Public Class Main
    Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        GetInitialBalance.ShowDialog()
    End Sub

    Dim localInitialBalance As Integer = GetInitialBalance.initialBalance

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox(localInitialBalance)
    End Sub
End Class
有帮助吗?

解决方案

New up the GetInitialBalance form and then when the user clicks OK on the popup dialog, grab the value initialBalance from the reference to GetInitialBalance, like this:

Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim popup As New GetInitialBalance
    If popup.ShowDialog = Windows.Forms.DialogResult.OK Then
        localInitialBalance = popup.initialBalance
    End If
End Sub

Your entire code should look like this:

Public Class GetInitialBalance
    Public initialBalance As Integer

    Private Sub btnApplyInitialBal_Click(sender As Object, e As EventArgs) Handles btnApplyInitialBal.Click
        initialBalance = Convert.ToInt32(textinput)
        Me.DialogResult = Windows.Forms.DialogResult.OK
    End Sub
End Class

Public Class Main
    Dim localInitialBalance As Integer

    Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim popup As New GetInitialBalance
        If popup.ShowDialog = Windows.Forms.DialogResult.OK Then
            localInitialBalance = popup.initialBalance
        End If
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        MsgBox(localInitialBalance)
    End Sub
End Class
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top