3

我正在使用以下命令将文本附加到我正在使用的多行文本框中:

TextBox1.AppendText(Environment.NewLine & "Current status : " & currentStatus)

但是,如果有(例如)49 行,我想在添加第 50 行时删除第一行。

我怎样才能做到这一点 ?

4

4 回答 4

2

你也可以用它LINQ来解决这个问题。这里我使用了SKIPTAKE函数。

If textBox1.Lines.Count = 50 Then
    textBox1.Lines= textBox1.Lines.Skip(Of String)(1).Take(textBox1.Lines.Length - 1).ToArray()
End If

注意:只有当你有框架 3.5 或更高版本时它才会起作用。

于 2013-05-22T09:49:36.687 回答
1

文本框有一个TextChanged事件,每次文本更改时都会触发该事件。

您可以使用它来计算文本框中的行数,这与换行符的数量相同。如果这个数量超过了你的限制,你可以通过找到第一个换行符来删除第一行,然后删除它以及它前面的所有内容。

我不会说 VB.Net,所以我希望你可以使用它并编写代码。

我以任何方式进行了尝试:

Private Sub textBox1_TextChanged(sender As Object, e As EventArgs)
    Dim lineCount As Integer = textBox1.Lines.Count()

    If lineCount > 49 Then
        textBox1.Text = textBox1.Text.Substring(textBox1.Text.IndexOf(Environment.NewLine))
    End If
End Sub
于 2013-05-22T08:49:06.110 回答
1

你可以尝试这样的事情:

If TextBox1.Lines.Count = 50 Then
    Dim temp As String(50)
    Array.Copy(TextBox1.Lines,1,temp,0,49)
    TextBox1.Lines = temp
End If

TextBox1.AppendText(Environment.NewLine & "Current status : " & currentStatus)

我目前正在大脑编译器和 iPhone 上运行,但我认为这应该可以。

于 2013-05-22T08:50:27.630 回答
1

尝试这个

dim sNewLine as String '-------> inserted text 
dim s as string = textbox1.text

s=mid(s,instr(s,vbCRLF)+2)

追加新行

textbox1.text = s & vbCRLF & sNewLine
于 2013-05-22T08:37:29.987 回答