请问如何用字符串访问控件

toprise 2006-09-10 05:22:12
例如我有控件文本框控件 text1,text2等,字符变量S="text",我希望有类似s+"1"的方式能代表text1控件,S+"2"的方式能代表text2控件的方式
...全文
287 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
toprise 2006-11-21
搞定,谢谢
  • 打赏
  • 举报
回复
fyming 2006-10-09

不知道你下一步的动作是要做什么,如果是要赋值,例:

(1)自定义函数
Public Function LetTxtValues(ByVal strName As String, _
ByVal strTemp as String) As Boolean
On Error GoTo 0

Dim objObject As Object

'遍历窗体上对象
For Each objObject In objForm
If TypeOf objObject Is TextBox Then
If objObject.Name = strName Then
objObject.Text = strTemp
End If
End If
Next

End Function

(2)引用时:
LetTxtValues S & "1", strTemp
  • 打赏
  • 举报
回复
liuchanghu 2006-10-09
如果不用数组不知道是否还有别的办法?
  • 打赏
  • 举报
回复
ZOU_SEAFARER 2006-10-09

Private Sub Command1_Click()
Dim a As String
Dim i As Integer
For i = 1 To 2
a = "Text" & i
Dim myTxt As TextBox
Set myTxt = Me.Controls(a)
myTxt.Text = "Hello" & i
Next
End Sub
  • 打赏
  • 举报
回复
AnnaBear 2006-10-09
楼主的意思是用一个变量名代替控件吧:
code:
Private Sub Command1_Click()
Dim s As String
s = "text1"
Dim a As TextBox
Set a = CallByName(Me, s, VbGet)
a.Text = "hello"
End Sub
是这个意思么^_^
  • 打赏
  • 举报
回复
ZOU_SEAFARER 2006-10-09
以前有一个很简单的例子我一下找不出来了!!
  • 打赏
  • 举报
回复
happy_sea 2006-10-09
比如你要显示name是"text" & "1"的textbox控件的值:
Dim o As Control
For Each o In Me.Controls
If o.Name = "text" & "1" Then
MsgBox o.Text
End If
Next o
  • 打赏
  • 举报
回复
cxxylce0 2006-09-10
虽然不可以,但是有变通的方法:使用控件数组。
textbox(1).Text
textbox(2).Text
...
textbox(i).Text
  • 打赏
  • 举报
回复
相关推荐
发帖
VB基础类

7635

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2006-09-10 05:22
社区公告
暂无公告