2013-10-24 6 views
0

В моем классе frmMain у меня есть текстовое поле (txtCustomer), которое заполняется из базы данных. Я хочу передать это значение в другое текстовое поле в frmDepartment (txtDeptCustomer).vb.net текстовое поле не смещающее значение

Я не вижу логики, почему код, который я использую, не отображает значение в txtDeptCustomer. Я могу запросить базу данных в порядке с переменной, поэтому строка передается, но просто не отображается в txtDeptCustomer. Я был бы признателен, если бы кто-нибудь мог указать на мою ошибку. Благодаря

frmDepartment

Dim customer As Object = frmMain.txtCustomer.Text 

Это проходит правильное значение в БД.

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 
+0

Где объявляется переменная клиента? И почему вы используете объект, когда для каждого использования этой переменной требуется строка? – Steve

+0

Есть ли ошибки? 'TxtDeptCustomer'' public'? Вы называете 'frrmDepartment' от' frmMain'? – Edper

+0

@Edper Я поставил try catch и не обнаружил ошибок. Спасибо – user1532468

ответ

1

Вы должны объявить то, как public ваш customer переменной в frmDepartment, как:

Public customer as String 

И в button click от вашего frmMain вы передаете значение, подобное:

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 
+0

Отлично. Большое спасибо – user1532468

+0

Добро пожаловать @ user1532468. Бог благословил. – Edper

+0

Спасибо. Ты тоже – user1532468

2
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 вы можете сказать

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 
Смежные вопросы