首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将复选框添加到动态创建的选项卡页面,然后将分组框与每个复选框(VB.NET)链接起来?

如何将复选框添加到动态创建的选项卡页面,然后将分组框与每个复选框(VB.NET)链接起来?
EN

Stack Overflow用户
提问于 2012-09-27 11:03:54
回答 2查看 3.8K关注 0票数 2

(第1部分)我想为每个动态创建的标签页添加8个复选框。我试着跟踪,但它在最后一个选项卡上添加了一个复选框。如何向每个选项卡页添加8个chckboxes (比如10个选项卡页)

(第2部分)由于我们不知道创建的checkbox的索引,我无法理解如何链接带有"checkbox.checked“条件的分组框。任何帮助都将不胜感激。

代码语言:javascript
复制
Dim chkbx As New CheckBox

For j = 1 To 10 '#10 tab pages considered
Form4.TabControl1.TabPages.Add(j)
Form4.TabControl1.TabPages(j).Text = "Folder" & j + 1
Form4.TabControl1.TabPages(j).Controls.Add(chkbx)
chkbx.Text = "folder1name "
chkbx.Size = New Size(220, 17)
Next (j)

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-27 11:07:20

for循环中每次创建CheckBox实例

代码语言:javascript
复制
For j = 0 To 9 '#10 tab pages considered
  Dim chkbx As New CheckBox
  Form4.TabControl1.TabPages.Add(j)
  Form4.TabControl1.TabPages(j).Text = "Folder" & j + 1
  Form4.TabControl1.TabPages(j).Controls.Add(chkbx)
  chkbx.Text = "FolderName"
  chkbx.Size = New Size(220, 17)
  chkbx.Name="A" & j  <----- set unique name/key to each control
Next (j)

并使用Controls.Find()方法获取control的引用。

代码语言:javascript
复制
Dim name = "A0"
Dim controlArray = Me.Controls.Find(name, True)
If controlArray.Length <> 0  Then
   Dim chk As CheckBox = CType(controlArray(0), CheckBox)
   If Not IsNothing(chk) Then
       MsgBox(chk.Checked)
   End If
End If
票数 1
EN

Stack Overflow用户

发布于 2012-09-27 11:38:13

按照AVD所说的那样,在你的循环中创建复选框来分配你的动态TabPages。你需要预先创建你的combobox或者在另一个for循环中动态创建它们。然后,我将使用它们的Tag属性为每个CheckBox分配一个惟一的ID,并使用它来区分在通用CheckedChanged事件中更改了哪个ID。就像这样。

代码语言:javascript
复制
Dim index As Integer = 0
For j = 1 To 10 '#10 tab pages considered 
    Dim startLocation As Point = New Point(10, 10)
    TabControl1.TabPages.Add(New TabPage)
    TabControl1.TabPages(j).Text = "Folder" & j + 1
    For x = 0 To 7
        Dim chkbx As New CheckBox
        TabControl1.TabPages(j).Controls.Add(chkbx)
        chkbx.Tag = index
        chkbx.Text = "FolderName"
        chkbx.Location = startLocation
        chkbx.Size = New Size(220, 17)
        AddHandler chkbx.CheckedChanged, AddressOf CheckBox_CheckedChanged
        startLocation.Y = startLocation.Y + 16
        index += 1
    Next
Next

CheckChanged Event

代码语言:javascript
复制
Private Sub CheckBox_CheckedChanged(sender As System.Object, e As System.EventArgs)
    Dim cb As CheckBox = CType(sender, CheckBox)

    Select Case CInt(cb.Tag)
        Case 0

        Case 1

        Case 2

        Case 3

        Case .... 'Up to how ever many index's that you have

        Case Else

    End Select

End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12613472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档