如何通过“字符串名称”取得控制权的房产吗?(How To Get Control Property

2019-07-20 12:29发布

我一直在接下来的循环编码 ,结果创建按钮和textboxs

'T(x).Name = "text_1"
'T(x).Name = "text_2"
'T(x).Name = "text_3"
'....

'B(x).Name = "button_1"
'B(x).Name = "button_2"
'B(x).Name = "button_3"
'...

我想文本框属性whene我按一下按钮,单击就像当我可以得到按钮属性button_1.Name.ToString ,但我不能得到text_1,2,3 ....属性。

我做的分裂功能button_1.Name.ToString一些技巧,最后一数,并把它添加到像文本框名称"text_" & button_1.Name.ToString ,但我不能转换此字符串对象。

更新

下面是我使用加载在循环中的控件的代码:

C_A_TEXT(x) = New TextBox() 
C_A_TEXT(x).Dock = System.Windows.Forms.DockStyle.Fill 
C_A_TEXT(x).Location = New System.Drawing.Point(270, 5) 
C_A_TEXT(x).Margin = New System.Windows.Forms.Padding(0) 
C_A_TEXT(x).Size = New System.Drawing.Size(70, 27) 
C_A_TEXT(x).TabIndex = 5 
C_A_TEXT(x).Name = "NEW_RECHARGE_COUNT_TEXT_" & x

更新2

这里的一些代码:

AddHandler C_A_BUTTONS(x).Click, AddressOf C_A_BUTTON 

Private Sub C_A_BUTTON(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Dim thisButton As Button = sender Dim A = CType(Me.Controls("NEW_RECHARGE_COUNT_TEXT_1"), TextBox) 
    MsgBox(A.Text.ToString)  'Error!
End Sub

Answer 1:

您可以按名称通过访问控制Form.Controls属性,例如:

Dim text1 As TextBox = CType(Me.Controls("text_1"), TextBox)


Answer 2:

作为一个快速有用的技巧要注意,你似乎并不需要指定控制CTYPE声明中的类型访问您的窗体上的控制的目的。 试图访问多种类型的表单控件,如按钮和文本框,都具有相同的一行代码,当我遇到这样来了。

CType(Controls("NAME_OF_CONTROL"), Control)

需要注意的是,而不是指定究竟什么类型的控制,如“文本框”或“按钮”,您只需状态“控制”。 这可以让你改变普遍的任何类型的控制,而无需指定其类型。

我找不到这个其他地方,所以我想我会分享它!



Answer 3:

下面是代码。

Dim oObj As Object = Me.Controls.Find("control name", True).FirstOrDefault()
Obj.Property = Value

我希望它能帮助。



Answer 4:

螺纹和你手头上的问题的说明的标题似乎彼此有些不同。

为了回答您的标题 (以找到它的名字控制)使用以下命令:

Dim myControlToFind = LayoutRoot.FindName("NAMEOFCONTROL")

这种方法的详细信息,可以发现在这里 。

要回答你的问题的描述为(访问代码生成被点击后,控制)做到以下几点:

在您创建的控制回路(S)添加以下处理程序

Addhandler YOURCONTROL.Clicked, AddressOf Textbox_Clicked

......然后,这将处理click事件

Private Sub Textbox_Clicked(sender as object, e as RoutedEventArgs)

Dim tbClicked = Ctype(sender, TextBox)
'You can now access any of the properties of the textbox, for example

Dim txt as String = tbClicked.Text
Dim name as String = tbClicked.Name
Dim height as Double = tbClicked.Height

End Sub


Answer 5:

Dim sometext As TextBox = CType(Me.Controls("sometext "), TextBox)


文章来源: How To Get Control Property by “String Name”?