我有两种形式。一个是InvoiceEntry,另一个是ListofSuppliers。 InvoiceEntry中有一个控件“txtsnam”.ListofSuppliers包含一个Datagrid,它包含供应商的所有名称。当用户在此文本框上按f9时,将打开ListofSupplier表单。用户从网格中选择供应商名称,然后按Enter键。在这个按下输入我想将供应商的名称传递给“txtsnam”。我使用了这段代码,但它不适用于我:
On InvoiceEntry:
Private Sub txtsnam_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtsnam.KeyDown`
If e.KeyCode = Keys.F9 Then
Dim lov As New SupplierLOV
lov.ShowDialog()
End If
End Sub
在ListofSuppliers上:
Private Sub RadGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RadGridView1.KeyDown
If e.keycode=keys.Enter then
InvoiceEntry.txtsnam.text=RadGridView1.CurrentRow.Cells(0).Value.ToString
End If
End Sub
我也尝试过财产的帮助,但它也没有用。我将断点放在第2行它执行bt文本不出现在txtsnam
答案 0 :(得分:0)
解决方案1:在Form2中创建一个事件,并在打开Form2时在Form1中订阅它。按Return键时,在Form2中引发事件并将值作为参数传输。 Form1将收到您的价值。
解决方案2:将一个成员添加到Form1类型的Form2中,并在创建Form2时将Form1作为参数传递给Form2。通过这种方式,您可以完全访问Form1属性,并且可以随时通过代码进行设置。当您关闭Form2时,您已经在Form1中设置了数据。
解决方案3:拥有一个静态提供程序类,并在那里存储您想要的来自不同表单的信息。您可以从程序中的任何位置设置和获取这些值。
解决方案4:......还有很多其他方法。这些是最简单的。
答案 1 :(得分:0)
试试这个
Private Sub RadGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RadGridView1.KeyDown
If e.keycode=keys.Enter then
InvoiceEntry.txtsnam.text=RadGridView1.Currentcell.value
End If
End Sub