1

RichTextBox コントロールを使用していますが、

String、Color、および RichTextBox (obj) を受け取る関数を作成したい場合、関数は、関数が受け取る String のすべてのインスタンスに色を付けます。

この関数を作成しようとしましたが、悪い結果が得られました。

私の機能ヘッドは次のとおりです。

Public Sub ColorWord(ByVal T As RichTextBox, ByVal Word As String, ByVal color1 As Color)

例えば ​​:

            RichTextBox1.text = xxxxxtextxxxxxtextxxx

            After Runing the function like this :
            ColorWord(RichTextBox1,"text",Color.red)

結果は次のようになります。

xxxxxテキストxxxxxテキストxxx

4

2 に答える 2

-2
Public Enum Highlight_Type
    Forecolor
    Backcolor
End Enum
Public Sub Reset_Highlight(ByVal T As RichTextBox, ByVal HighlightColorReset As Color, ByVal Type As Highlight_Type)
    On Error Resume Next
    T.SelectAll()
    Select Case Type
        Case Highlight_Type.Backcolor
            T.SelectionBackColor = HighlightColorReset
        Case Highlight_Type.Forecolor
            T.SelectionColor = HighlightColorReset
    End Select
    T.HideSelection = True
End Sub
Public Sub HighLight(ByVal T As RichTextBox, ByVal Word As String, ByVal HighlightColor As Color, ByVal HighlightColorReset As Color, ByVal Type As Highlight_Type)
    On Error Resume Next
    Reset_Highlight(T, HighlightColorReset, Type)
    If Word = Nothing Then Exit Sub
    Dim pos As Integer = 0
    Dim s As String = T.Text
    Dim i As Integer = 0
    Dim StopWhile As Boolean = False
    While Not StopWhile
        Dim j As Integer = s.IndexOf(Word, i)
        If j < 0 Then
            StopWhile = True
        Else
            T.Select(j, Word.Length)
            Select Case Type
                Case Highlight_Type.Backcolor
                    T.SelectionBackColor = HighlightColor
                Case Highlight_Type.Forecolor
                    T.SelectionColor = HighlightColor
            End Select
            i = j + 1
        End If
    End While
    T.Select(pos, 0)
End Sub
于 2015-04-26T05:15:40.907 に答える