比如最大固定顯示10行日志,當增加到11行時,則自動洗掉第1行內容,只保留最新的10行日志,要如何實作?
uj5u.com熱心網友回復:
TextChanged 方法處理文本或lines的陣列copy https://blog.csdn.net/m1430630520/article/details/99680814
uj5u.com熱心網友回復:
用listbox或者listview不好嗎?更靈活好用一些。uj5u.com熱心網友回復:
做一個委托事件,用listbox還是很好用的。uj5u.com熱心網友回復:
Listbox不支持文本顏色uj5u.com熱心網友回復:
那看來你還不對自己改controltemplateuj5u.com熱心網友回復:
Listbox本身啥都不支持,但是它里面不是啥都可以放嗎?
你把RichTextBox往里面放,滿了10個RichTextBox,就Remove掉第一個不就行了。
uj5u.com熱心網友回復:
在textchaned事件處理函式中:判定日志文本中換行符號數量,如果超過10個,則洗掉0~第一個換行符的資料.uj5u.com熱心網友回復:
Public Class Form1Dim LIMITMAXROWCOUNTS As Integer = 10
Dim counts As Integer = 0
Private Sub btnAddEvent_Click(sender As Object, e As EventArgs) Handles btnAddEvent.Click
counts += 1
DisplayLogInfo(counts)
End Sub
Private Function DisplayLogInfo(ByVal info As String) As Integer
Dim ret As Integer = 0
Dim lstArrayData As New List(Of String)
Try
With rbtLog
lstArrayData.AddRange(.Text.Split(New Char(), "&", vbLf))
lstArrayData = lstArrayData.Where(Function(s As String) Not String.IsNullOrEmpty(s)).ToList
If lstArrayData.Count > LIMITMAXROWCOUNTS Then
lstArrayData.Add(info)
lstArrayData.RemoveAt(0)
.Clear()
For i As Integer = 0 To lstArrayData.Count - 1
.AppendText(String.Concat(lstArrayData(i).ToString, vbLf))
Next
Else
.AppendText(String.Concat(info, vbLf))
End If
End With
ret = 1
Catch ex As Exception
ret = 0
End Try
Return ret
End Function
End Class
uj5u.com熱心網友回復:
RT控制元件有lines屬性,獲取所有行的集合, 洗掉前面的行,保留后面的行就好了。重新賦值給RT。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/6798.html
標籤:VB.NET
