在visual studio 2010 vb中引用带变量的名称

时间:2014-01-29 09:53:00

标签: vb.net visual-studio-2010

我正在尝试将“home”中“comp”的文本分配给“home”形式的名为“d1”的文本框。 但这需要以“家”形式的柜台来完成。 代码在一个模块中。 我尝试了什么=

home.controls("d" & home.counter).text = home.comp.text

我一直收到错误:

use the new keyword to create an object instance  ==> the textbox exists in the form
check to determine if the object is null before calling the method ==> the textbox is empty
get general help for this exception

1 个答案:

答案 0 :(得分:0)

您可以使用Controls.Find

Dim controls = home.Controls.Find("d" & home.counter, True)
If controls.Length > 0 Then
    Dim txt = TryCast(controls(0), TextBoxBase)
    If txt IsNot Nothing Then
        txt.Text = home.comp.text
    End If
End If

但是,通常我不会使用这种方法,因为它容易出错。为什么不以Home形式提供您可以访问的公共财产?此属性将获取/设置TextBox'Text

例如:

Public Property HomeCompText As String
    Get
        Return txtHomeComp.Text
    End Get
    Set(value As String)
        txtHomeComp.Text = value
    End Set
End Property

现在您可以使用这个清晰,安全且可维护的代码:

home.HomeCompText = home.comp.text

您甚至可以更改基础控件。