2016-08-24 57 views
0

我需要在模塊的表單上引用文本框。以下工作很好,除了我必須硬編碼表單名稱(frmForm1)。我從幾種形式使用它。我如何使用我發送的表單名稱(Me)?將表單名稱傳遞給模塊中的函數

我打電話的功能,我想發送表單名稱,從我的形式:

ModuleFunction(Me) 

在模塊我有這樣的功能:

Public Function ModuleFunction(ByRef frmFrom As frmForm1) As Boolean 

    frmFrom.txtTextBox1.Text = "something" 
    ...... 

End Function 
+0

看起來像某種VB。根據您的語言,可能需要使用[vbscript]或[vba]或[vb.net]等標籤進行編輯。 – Mikegrann

+0

這是VB.Net。我得到如何傳遞函數的函數,但「(從frmFrom作爲frmForm1)」扔我。我通過表單名稱,但我不知道如何在功能代替硬編碼「frmForm1」 – JimLaydon

回答

0

解決這個問題,通過使用Controls代替:

Public Function ModuleFunction(ByRef frmFrom As Form) As Boolean 

    frmFrom.Controls("txtTextBox1").Text = "something" 
    ...... 

End Function 

你應該能夠在一個傳遞3210,因爲它繼承自Form。但只要您試圖訪問會員txtTextBox1它不會編譯,因爲Form不知道該特定成員 - 只有它的孩子。但是Form確實有一個包含所有這些控制成員的定義的Controls集合,允許您通過多態性的魔力訪問您的控件。

+0

這個工作完美!非常感謝,並有一個偉大的一天:) – JimLaydon

+0

以及一個新問題使用相同的概念..我想用DataGridView使用DataSource屬性: frmFrom.Controls(「DataGridView」)。DataSource = BindingSource和我得到'DataSource'不是'System.Windows.Forms.Control'的成員 – JimLaydon

相關問題