2016-08-24 58 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

相关问题