You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB中通过输入TextBox名称获取对应文本框控件的内容

实现方案

错误原因分析

  • 第一种写法:尝试把字符串类型的控件名直接赋值给TextBox类型变量,类型不匹配,运行会直接抛出类型转换异常
  • 第二种写法:只是把输入的控件名字符串赋值给了字符串变量,没有关联到实际的控件实例,无法获取目标控件的属性值

正确实现代码(WinForm场景)

' 读取输入的控件名,去除首尾空格
Dim inputName As String = TextBox2.Text.Trim()
' 兼容输入带.text后缀的场景,不区分大小写
If inputName.EndsWith(".text", StringComparison.OrdinalIgnoreCase) Then
    inputName = inputName.Substring(0, inputName.Length - 5)
End If

' 从当前窗体的控件集合递归查找对应名称的TextBox控件
Dim targetTxt As TextBox = TryCast(Me.Controls.Find(inputName, True).FirstOrDefault(), TextBox)

If targetTxt IsNot Nothing Then
    ' 成功获取到目标控件的Text内容
    Dim targetContent As String = targetTxt.Text
    ' 可根据需求对targetContent做后续处理,示例为弹窗展示
    MessageBox.Show("对应控件内容为:" & targetContent)
Else
    MessageBox.Show("未找到匹配的TextBox控件")
End If

代码说明

  • Me.Controls.Find(inputName, True)的第二个参数设为True表示支持递归查找子容器内的控件,哪怕目标TextBox放在Panel、GroupBox等容器内也可以正常匹配
  • TryCast做安全类型转换,如果找到的同名控件不是TextBox类型会返回Nothing,避免类型转换报错
  • 自动兼容带.text后缀的输入格式,完全匹配你提出的示例场景要求

内容的提问来源于stack exchange,提问作者Bianca Mada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:24:11