0

我有两种形式。一个是 InvoiceEntry,另一个是 ListofSuppliers。InvoiceEntry.ListofSuppliers 中有一个控件“txtsnam”,其中包含一个包含所有供应商名称的 Datagrid。当用户在此文本框上按 f9 时,ListofSupplier 表单将打开。用户从网格中选择供应商的名称,然后按 Enter。在此按输入我想将供应商的名称传递给“txtsnam”。我已经使用了这个代码,但它对我不起作用:

在发票输入上:

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

在供应商名单上:

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

4

2 回答 2

0

方案一:在Form2中创建一个事件,打开Form2时在Form1中订阅。当按下 Return 键时,在 Form2 中引发事件并将值作为参数传输。Form1 将收到您的值。

解决方案2:在创建Form2时将Form1类型的成员添加到Form2,并将Form1作为参数传递给Form2。通过这种方式,您可以完全访问 Form1 属性,并且可以随时从代码中设置它。当您关闭 Form2 时,您已经在 Form1 中设置了数据。

解决方案 3:拥有一个静态提供程序类并将您想要的来自不同表单的信息存储在那里。您可以从程序中的任何位置设置和获取这些值。

解决方案4:……还有很多其他的方法。这些是最简单的。

于 2013-05-21T08:34:58.810 回答
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
于 2013-05-21T08:51:20.920 回答