如何将文本从一个表单传递到后面的打开表单?

时间:2013-05-21 08:03:19

标签: vb.net winforms

我有两种形式。一个是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

2 个答案:

答案 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
相关问题