VB.NET - 如何将控件名称与另一个变量值连接以更改其属性?



我想更改"带有";。

Private Sub Apply(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txt10.KeyDown, txt0.KeyDown
If txt10.ReadOnly = False Then
If e.KeyCode = Keys.Enter Then
With txt10
.ForeColor = Color.White
.ReadOnly = True
.BorderStyle = BorderStyle.None
End With
End If
End If
End Sub

问题是,我需要将这些属性设置为某个文本框,所以我声明了一个名为"的变量;数字";,我在想这是否可行:

With Controls("txt" & Number)
.ForeColor = Color.White
.ReadOnly = True
.BorderStyle = BorderStyle.None
End With

这只适用于某些属性,而不适用于";带有";。你知道怎么做吗?

检索控件并将其定义为TextBox。然后像以前一样使用它。从Controls集合获取控件时,由于未指定控件类型,某些属性将不可用(例如textbox只读属性(。

Dim textBox As TextBox = DirectCast(Controls("txt" & number), TextBox)
If textBox.ReadOnly = False AndAlso e.KeyCode = Keys.Enter Then
With textBox
.ForeColor = Color.White
.ReadOnly = True
.BorderStyle = BorderStyle.None
End With
End If

最新更新