【问题标题】:vb.net textbox not displaing valuevb.net 文本框不显示值
【发布时间】:2013-10-24 10:44:28
【问题描述】:

在我的 frmMain 类中,我有一个从数据库填充的文本框(txtCustomer)。我想将此值传递给 frmDepartment(txtDeptCustomer) 中的另一个文本框。

我看不到为什么我使用的代码没有在 txtDeptCustomer 中显示值的逻辑。我可以用变量查询数据库,所以字符串正在传递,但只是没有显示在 txtDeptCustomer 中。如果有人能指出我的错误,我将不胜感激。谢谢

frm部门

Dim customer As Object = frmMain.txtCustomer.Text

这是将正确的值传递给 db。

sql = "SELECT * FROM Departments where Customer = '" & CType(customer, String) & "'"

文本框 txtDeptCustomer

Private Sub txtDeptCustomer_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDeptCustomer.TextChanged
        txtDeptCustomer.Text = CType(customer, String)
    End Sub

【问题讨论】:

  • 客户变量在哪里声明?当每次使用这个变量都需要一个字符串时,为什么还要使用一个对象?
  • 显示有错误吗?是txtDeptCustomerpublic?您是从frmMain 拨打frrmDepartment 吗?
  • @Edper 我输入了 try catch 并没有显示错误。谢谢
  • @Steve 我本可以将客户作为字符串 = frmMain.txtCustomer.Text 完成,然后调用客户。我以为我已经在上面的代码中的 frmDepartment 中声明了它。谢谢
  • 我希望你能向我们展示更多代码,比如当你从frmMain 调用frmDepartment 时。因为在Forms 之间传递值可能只是一件简单的事情。

标签: vb.net visual-studio-2010


【解决方案1】:
Public Customer as String = Nothing

    Private Sub btnDO_Click(sender As Object, e As EventArgs) Handles btnDoWork.Click
        Customer = Database Call
        Dim frmDepartmentInstance as new frmDepartment
        frmDepartment.ShowDialog(Me)
    End Sub

然后在 frmDepartment 的 Load 事件中你可以说

txtDeptCustomer.Text = frmMain.Customer

概念证明:新项目。两种形式 |表格 1 有一个按钮和一个文本框 | Form2 只有文本框

Public Class Form1
    Public Test As String = Nothing
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Test = TextBox1.Text
        Dim frm2 As New Form2
        frm2.ShowDialog(Me)
    End Sub
End Class

Public Class Form2
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    TextBox1.Text = Form1.Test
End Sub
End Class

【讨论】:

    【解决方案2】:

    您必须在frmDepartment 中将customer 变量声明为public,例如:

     Public customer as String
    

    并且在您的frmMain 中的button click 中,您传递的值如下:

    frmDepartment.customer = txtCustomer.Text
    frmDepartment.Show()
    

    然后在加载您的frmDepartment 时,您现在可以选择将customer 分配给txtDeptCustomer,例如:

    Private Sub frmDepartment_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        txtDepartment.Text = customer
    End Sub
    

    【讨论】:

    • 优秀。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2017-09-04
    • 2014-01-11
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2016-09-14
    相关资源
    最近更新 更多