2013-05-21 64 views
0

我有兩種形式。一個是InvoiceEntry,另一個是ListofSuppliers。在InvoiceEntry中有一個控件「txtsnam」。供應商包含一個包含所有供應商名稱的Datagrid。當用戶在此文本框的ListofSupplier表單上按f9打開時。用戶從網格中選擇供應商的名稱,然後按回車。在此按回車我想供應商的名稱傳遞給。我已經使用這個代碼,但它不是爲我工作的「txtsnam」:如何將文本從一種表單傳遞給後面的打開表單?

在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

解決方案1:當您打開Form2時,在Form2中創建一個事件並在Form1中訂閱它。按Return鍵時,在Form2中引發事件並將該值作爲參數傳送。 Form1將收到您的價值。

解決方案2:創建Form2時,將成員添加到Form1類型Form1並將Form1作爲參數傳遞給Form2。通過這種方式,您可以完全訪問Form1屬性,並且您可以隨時通過代碼進行設置。當您關閉Form2時,您已經在Form1中設置了您的數據。

解決方案3:有一個靜態提供程序類,並將您需要的信息存儲在不同的表單中。您可以在程序中的任何位置設置並獲取這些值。

解決方案4:......還有很多其他方法。這些是最簡單的。

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 
相關問題