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

VB.NET中如何通过字符串形式的名称获取对应Checkbox的选中值

解决方案

方法1:按控件名查找(直接匹配你原有的命名逻辑)

直接修正你的点击事件代码即可,不需要额外存全局变量或者写临时文件:

Sub addToOrderButtonClicked(ByVal sender As System.Object, ByVal e As System.EventArgs)
    ' 从点击的按钮名中提取商品ID
    Dim btn As Button = DirectCast(sender, Button)
    Dim productId As String = btn.Name.Substring(4)

    ' 从窗体控件集合中查找对应ID的两个复选框,第二个参数True代表递归查找所有子容器(如果复选框放在Panel等容器里也能找到)
    Dim cb1 As CheckBox = DirectCast(Me.Controls.Find("cb1_" & productId, True).FirstOrDefault(), CheckBox)
    Dim cb2 As CheckBox = DirectCast(Me.Controls.Find("cb2_" & productId, True).FirstOrDefault(), CheckBox)

    ' 取值使用
    Dim cb1Checked As Boolean = If(cb1 IsNot Nothing, cb1.Checked, False)
    Dim cb2Checked As Boolean = If(cb2 IsNot Nothing, cb2.Checked, False)

    MsgBox($"你选中的按钮:{btn.Name},复选框1状态:{cb1Checked},复选框2状态:{cb2Checked}")
End Sub

方法2:使用Tag属性关联控件(更优推荐)

不需要依赖控件命名,创建控件时直接把同组的复选框绑定到按钮的Tag属性,后续直接读取即可,性能更高也不容易出匹配错误:

  1. 先调整控件创建代码,把两个复选框存在按钮的Tag里:
' 先创建两个复选框
Dim checkBox1 As CheckBox = New CheckBox
checkBox1.AutoSize = True
checkBox1.Name = "cb1_" & array(0)
' 其余属性赋值省略
Me.Controls.Add(checkBox1)

Dim checkBox2 As CheckBox = New CheckBox
checkBox2.AutoSize = True
checkBox2.Name = "cb2_" & array(0)
' 其余属性赋值省略
Me.Controls.Add(checkBox2)

' 创建按钮时把两个复选框存入Tag
Dim button As Button = New Button
button.Text = "Add to order"
button.Name = "btn_" & array(0)
' 其余属性赋值省略
button.Tag = New CheckBox(){checkBox1, checkBox2} ' 关联同组复选框
Me.Controls.Add(button)
AddHandler button.Click, AddressOf addToOrderButtonClicked
  1. 点击事件直接从Tag取即可:
Sub addToOrderButtonClicked(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Dim btn As Button = DirectCast(sender, Button)
    Dim cbs As CheckBox() = DirectCast(btn.Tag, CheckBox())
    Dim cb1Checked As Boolean = cbs(0).Checked
    Dim cb2Checked As Boolean = cbs(1).Checked

    MsgBox($"你选中的按钮:{btn.Name},复选框1状态:{cb1Checked},复选框2状态:{cb2Checked}")
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:54:04