我正在使用以下命令将文本附加到我正在使用的多行文本框中:
TextBox1.AppendText(Environment.NewLine & "Current status : " & currentStatus)
但是,如果有(例如)49行,我想在添加第50行时删除第一行。
我该怎么做?
答案 0 :(得分:2)
您也可以使用LINQ
来解决此问题。 Here我使用了SKIP
和TAKE
个函数。
If textBox1.Lines.Count = 50 Then
textBox1.Lines= textBox1.Lines.Skip(Of String)(1).Take(textBox1.Lines.Length - 1).ToArray()
End If
注意:仅当您拥有3.5或更高版本的框架时才会有效。
答案 1 :(得分: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
答案 2 :(得分: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
答案 3 :(得分: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,但我认为这应该可行。