所以,我試圖創建一個函數或兩個需要HTML標記和顏色他們不同於其他文本(類似於Visual Studio如何爲關鍵詞如Dim
)。我發現的唯一方法是使用富文本框,然後執行*.SelectionColor = Color.Blue
或類似的操作。有沒有其他方法可以做到這一點?每當文本框更新時,我都會這樣做,它會將所有html標籤更改爲不同的顏色。這對於一個非常簡短的html文件來說工作得很好,但是當它們變得更大時,它會花費很長時間,並且選擇會移動光標。除了* .SelectionColor之外,還可以更改字體顏色或更好地使用它的方法?
那麼,有沒有其他的方式來做到這一點,即使我不得不使用富文本框以外的東西?如果沒有,有沒有人看到一種方法來改善這一點?
這是在文本框更新時運行的兩個函數。標記是藍色的,屬性是紅色的,引號中的內容是綠色的。
'//////////////////////////////////////////////////////////////////////////
'// findTag()
'// -finds a tag
'//////////////////////////////////////////////////////////////////////////
Private Function findTag()
Dim tag As String = ""
Dim i As Integer = 0
Dim startTag As Integer
While (i < txtCurrentFile.TextLength - 1)
If txtCurrentFile.Text(i) = "<" Then
startTag = i
While txtCurrentFile.Text(i) <> ">"
tag += txtCurrentFile.Text(i)
i += 1
End While
tag += ">"
colorCode(startTag, tag)
tag = ""
End If
i += 1
End While
Return Nothing
End Function
'//////////////////////////////////////////////////////////////////////////
'// colorCode()
'// -colors different tags accordingly
'//////////////////////////////////////////////////////////////////////////
Private Function colorCode(ByVal startIndex As Integer,
ByVal tag As String)
Dim i As Integer = 0
Dim isAttributes As Boolean = False
Do While (tag(i) <> " " And tag(i) <> ">")
txtCurrentFile.Select(startIndex + i, 1)
txtCurrentFile.SelectionColor = Color.Blue
i += 1
Loop
If i < tag.Length Then
Do Until (tag(i) = ">")
Do Until (tag(i) = Chr(34))
txtCurrentFile.Select(startIndex + i, 1)
txtCurrentFile.SelectionColor = Color.Red
i += 1
Loop
i += 1
Do Until (tag(i) = Chr(34))
txtCurrentFile.Select(startIndex + i, 1)
txtCurrentFile.SelectionColor = Color.Purple
i += 1
Loop
i += 1
Loop
txtCurrentFile.Select(startIndex + i, 1)
txtCurrentFile.SelectionColor = Color.Blue
End If
Return Nothing
End Function
+1 - 尼斯建議! – 2013-03-14 18:39:57
查看@JohnBustos的答案。它有更好的工作機會(例如,IE團隊可能比你做得更好,或者我希望能夠實現CSS),並且需要更少的代碼。 – 2013-03-14 18:51:45
我真的很喜歡2號的想法。我有一個類似的想法,只是沒有實現它。 3也是一個好主意。我不完全確定如何在VB中使用線程,但這是有道理的,這樣你就可以繼續,因爲它做到了。第一,我沒有絲毫的想法。 儘管如此,謝謝你的建議! – 2013-03-14 19:03:38