我无法将已记录的用户信息检索到form2

问题描述 投票:0回答:1

正如标题所说,我无法将记录的用户信息提供给form2。我正在使用访问数据库。

这是我的代码:

Public Class Form1
    Public id, pw, bal, nme As String

    Private Sub CardBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgs) Handles CardBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.CardBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.KartDataSet)
    End Sub

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

    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        id = Card_IDTextBox.Text
        pw = PasswordTextBox.Text

        Dim login = CardTableAdapter.IDPW(id, pw)

        If login Is Nothing Then
            MsgBox("Check ID or PW")
        Else
            MsgBox("Welcome, now you are connecting.")
            Form2.Show()
            bal = Form2.BalanceTextBox.Text
            nme = Form2.UserTextBox.Text
        End If
    End Sub
End Class

我究竟做错了什么?

vb.net
1个回答
0
投票

如果评论中的代码..

id = Form1.Card_IDTextBox.Text
pw = Form1.PasswordTextBox.Text 
bal = Me.BalanceTextBox.Text 
nme = Me.UserTextBox.Text

在你的form2.Load处理程序,当你打电话

Form2.Show()

上面的代码永远不会运行。你需要将它移动到你的Form2.Shown事件中。像这样 ..

Private Sub Form2_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    id = Form1.Card_IDTextBox.Text
    pw = Form1.PasswordTextBox.Text 
    bal = Me.BalanceTextBox.Text 
    nme = Me.UserTextBox.Text
End Sub

.Load事件仅在创建Form2类的实例时触发。 Visual Studio在幕后创建代码,在程序启动时自动创建Form2的默认实例。当然,在那时,你的文本框等没有值,所以任何像你的代码将在Form2.Load处理程序中无用:-)

© www.soinside.com 2019 - 2024. All rights reserved.