如何在vb.net中动态创建多行标签

如何在vb.net中动态创建多行标签,vb.net,Vb.net,这种情况是,我希望根据字符串的大小动态填充标签数据。例如,如果字符串长度为100,则必须在第一个标签中填充前30个字符,在下一个标签中填充其余30个字符,依此类推 到目前为止我做了什么 Dim remcontent, remcontentlength, remcontentlabelcount, labelcounter As New Integer Dim rc As Integer = 30 Dim remcontentstri

这种情况是,我希望根据字符串的大小动态填充标签数据。例如,如果字符串长度为100,则必须在第一个标签中填充前30个字符,在下一个标签中填充其余30个字符,依此类推

到目前为止我做了什么

Dim remcontent, remcontentlength, remcontentlabelcount, labelcounter As New Integer
                Dim rc As Integer = 30
                Dim remcontentstring As String
                remcontentlength = row.Item(4).ToString.Length
                Dim endindex As Integer = 30
                Dim startindex As Integer = 0


                If remcontentlength > 30 Then
                    Dim actualremcontent As String
                    actualremcontent = "Note :" + row.Item(4).ToString

                    Dim modcheck As Integer
                    modcheck = remcontentlength Mod 30
                    If modcheck = 0 Then
                        remcontentlabelcount = (remcontentlength / 30)
                    Else
                        remcontentlabelcount = (Math.Floor(remcontentlength \ 30)) + 1
                    End If
                   ReDim remindercontantmulti(remcontentlabelcount)
                    For labelcounter = 1 To remcontentlabelcount
                        remindercontantmulti(labelcounter) = New Label
                        With remindercontantmulti(labelcounter)
                            .Name = "remindercontant " + x.ToString + labelcounter.ToString
                            .Text = actualremcontent.ToString.Substring(startindex, endindex)
                            .Visible = True
                            .Top = (22 * (x + (aa + 1))) + 10
                            .AutoSize = True
                            '.Left = reminderTime(x).Left + reminderTime(x).Width + 20
                            .BackColor = Color.Transparent
                            '.BorderStyle = BorderStyle.FixedSingle
                            .TextAlign = ContentAlignment.MiddleRight
                            .Font = New Drawing.Font("Trebuchet MS", 8, FontStyle.Regular)
                            Me.Panel4.Controls.Add(remindercontantmulti(labelcounter))
                            aa = aa + 1
                        End With
                        If Not startindex = 0 Then
                            startindex = startindex + rc
                            If (rc * labelcounter) < remcontentlength Then
                                endindex = remcontentlength - startindex
                            End If
                        End If
                    Next labelcounter
                    Else
                    remindercontant(x) = New Label
                    With remindercontant(x)
                        .Name = "remindercontant " + x.ToString
                        .Text = "Note :" + row.Item(4).ToString
                        .Visible = True
                        .Top = (22 * (x + (aa + 1))) + 10
                        .AutoSize = True
                        '.Left = reminderTime(x).Left + reminderTime(x).Width + 20
                        .BackColor = Color.Transparent
                        '.BorderStyle = BorderStyle.FixedSingle
                        .TextAlign = ContentAlignment.MiddleRight
                        .Font = New Drawing.Font("Trebuchet MS", 8, FontStyle.Regular)
                        Me.Panel4.Controls.Add(remindercontant(x))
                        aa = aa + 1
                    End With
                End If

您遇到的问题是什么?首先获取一个工作函数,该函数将在标签上打印30个字符。然后,其他内容变得无关紧要。此代码只在所有标签上重复打印前30个字符。我希望其他剩余字符填充到其他标签上,而不是根据您所说的在所有标签上重复相同的30个字符,而无需亲自测试,我认为问题在于,如果不是startindex=0,那么。startindex变量被初始化为0,除非我遗漏了什么,否则它只在该If块内,startindex变量的值递增。因此,它将始终保持在0。