user1532468
user1532468

Reputation: 1751

vb.net textbox not displaing value

In my frmMain class I have a textbox(txtCustomer) which populates from a database. I want to pass this value to another textbox in frmDepartment(txtDeptCustomer).

I am failing to see the logic of why the code I am using is not displaying a value in txtDeptCustomer. I can query the database ok with the variable, so the string is being passed through, but just not displaying in txtDeptCustomer. I would be grateful if someone could point out my error. Thanks

frmDepartment

Dim customer As Object = frmMain.txtCustomer.Text

This is passing correct value to db.

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

textbox txtDeptCustomer <--- NOT DISPLAYING VALUE

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

Upvotes: 0

Views: 2106

Answers (2)

Brandon
Brandon

Reputation: 945

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

Then in the Load event of frmDepartment you can say

txtDeptCustomer.Text = frmMain.Customer

Proof of concept: New Project. Two forms | Form 1 has a button and a textbox | Form2 just has textbox

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

Upvotes: 2

Edper
Edper

Reputation: 9322

You must declare then as public your customer variable in frmDepartment, like:

 Public customer as String

And in the button click from your frmMain you pass the value like:

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

And then in Loading your frmDepartment you have now the option of assigning customer to txtDeptCustomer like:

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

Upvotes: 1

Related Questions