如何动态生成多个相同的控件

选择一下容器控件放入form中,本例子选用的是table,并且数据全部是从DB中读取出来的.动态生成多个checkbox,然后对checkbox的事件进行相应的处理:


        For Each dr As DataRow In Me.DS.Tables(0).Rows'从DB中读取数据

            chk = New CheckBox()
            chk.Name = "chk_" & dr("skill_id").ToString()
            chk.Text = dr("skill_id").ToString + "." + dr("description").ToString()
            chk.Size = New Size(180, 17)
            chk.AutoCheck = True
            Me.tlp_employee_skill.Controls.Add(chk)'往容器里进行动态添加控件
        Next

 

 

要应事件的处理,此函数只需要放到需要改变checkbox 的checked地方就行:

  Private Sub CheckedChanged()

        For Each ctr As Control In Me.tlp_employee_skill.Controls

            If (ctr.GetType() Is GetType(CheckBox)) Then

                If (CType(ctr, CheckBox).Checked = True) Then

                    Me.skillset = Me.skillset + CType(ctr, CheckBox).Name.Replace("chk_", String.Empty) + ","

                End If

            End If

        Next

    End Sub

 

 

从DB中读取数据,将对应的checkbox 的checked=true

  Dim skillSetList() As String
        skillSetList = dr("skill_set").ToString().Split(",".ToCharArray())

        For Each skill As String In skillSetList

            For Each ctr As Control In Me.tlp_employee_skill.Controls

                If (ctr.GetType() Is GetType(CheckBox)) Then

                    If (ctr.Name.Replace("chk_", String.Empty) = skill) Then

                        CType(ctr, CheckBox).Checked = True

                    End If

                End If

            Next

        Next

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值