首页 > 解决方案 > 如何动态将标签页添加到标签控件并将标签添加到标签页

问题描述

我正在尝试将一些 Tabages 添加到名为“EMER_AUTO_TabContorl”并由 emer_num_textbox 控制的现有 TabControl。

如下图,我应该得到“A组”/“B组”/“C组”,但“C组”/“B组”/“C组”。

在此处输入图像描述

这是我的代码。

Dim group_name As String() = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"} 'my group name
Dim mytabPage As TabPage = New TabPage 
Dim myLabel As Label = New Label
Dim emer_groupNum As Integer 'my input number
Try
        emer_groupNum = Emer_Num_TextBox.Text 
        EMER_AUTO_TabControl.TabPages.Clear() 'Clear my tabControl
Catch           
End Try

For i = 1 To emer_groupNum

   With myLabel
       .Text = "123"
       .Location = New Point(6, pos1_Y)
   End With

   With mytabPage
      .Text = group_name(i - 1) & " Group"         
      .Controls.Add(myLabel)
   End With

   EMER_AUTO_TabControl.TabPages.Add(mytabPage)               
Next

标签页旁边不显示“123”文本。

标签: vb.nettabcontroltabpage

解决方案


您每次都在重复使用相同的标签页和标签。在 for 循环中移动“新建”,如下所示:

Dim group_name As String() = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"} 'my group name
Dim mytabPage As TabPage 
Dim myLabel As Label 
Dim emer_groupNum As Integer 'my input number
Try
        emer_groupNum = Emer_Num_TextBox.Text 
        EMER_AUTO_TabControl.TabPages.Clear() 'Clear my tabControl
Catch           
End Try

For i = 1 To emer_groupNum
   myLabel = New Label
   With myLabel
       .Text = "123"
       .Location = New Point(6, pos1_Y)
   End With

   mytabPage = New TabPage
   With mytabPage
      .Text = group_name(i - 1) & " Group"         
      .Controls.Add(myLabel)
   End With

   EMER_AUTO_TabControl.TabPages.Add(mytabPage)               
Next

编辑

您可能还想更改测试正确整数输入的方式,就像 Try/Catch 当前运行 For 循环一样。也许尝试这样的事情:

   If Integer.TryParse(Emer_Num_TextBox.Text, emer_groupNum) Then
        For i = 1 To emer_groupNum
            ' Loop code here
        Next
    Else
        ' Handle incorrect input
    End If

推荐阅读