Question

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
Était-ce utile?

La solution

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top