2012-02-20 33 views
0

ソフトウェアをインストールしているときに.logファイルに書き込むプログラムがあります。 一部の行にWARNINGまたはFAILEDのいずれかが含まれます。VB.netで強調表示されたライブテキストリーダー

私が望むのは、プログラム内のウィンドウで、.logファイルを読み込み、書き込み中のこのウィンドウにコンテンツを表示します。 WARNINGまたはFAILEDが含まれている行は黄色/赤色で強調表示されます。

誰でもこれを行う方法を知っていますか?

答えて

1

FORM(私はVB 2010を使用しました)を作成し、このコードを追加します。 2色でフォームに3行書きます。 途中であなたを得るかもしれません。あなたに新しい機能については、MSDNのヘルプにお尋ねください。

Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint 
    Dim chRs(0) As CharacterRange 
    Dim sbRs(0) As SolidBrush 
    Dim flRs(0) As SolidBrush 
    Dim blueBrush As New SolidBrush(Color.Blue) 
    Dim whiteBrush As New SolidBrush(Color.White) 
    Dim redBrush As New SolidBrush(Color.Red) 
    Dim EditFont As New Font("Courier New", 9) 
    Dim stringFormat As New StringFormat 
    Dim aRectangle As Rectangle 
    Dim RectHeight As Integer = 20 
    For i = 1 To 3 
     Dim txt As String = "a string " & CStr(i) 
     If i = 2 Then 
      sbRs(0) = blueBrush 
     Else 
      sbRs(0) = redBrush 
     End If 
     flRs(0) = whiteBrush 
     chRs(0) = New CharacterRange(0, txt.Length()) 
     Dim chRsa As Array = Array.CreateInstance(GetType(CharacterRange), 1) 
     Array.Copy(chRs, 0, chRsa, 0, 1) 
     aRectangle = New Rectangle(0, CInt((i - 1) * RectHeight), ClientRectangle.Size.Width, RectHeight) ' x, y, w, h 
     stringFormat.SetMeasurableCharacterRanges(chRsa) 
     Dim stringRegions As Array = Array.CreateInstance(GetType([Region]), 1) 
     stringRegions = e.Graphics.MeasureCharacterRanges(txt, EditFont, aRectangle, stringFormat) 
     Dim measureRect1 As RectangleF = stringRegions(0).GetBounds(e.Graphics) 
     Dim g As Graphics = e.Graphics 
     g.FillRectangle(flRs(0), measureRect1) 
     g.DrawString(txt.Substring(chRs(0).First, chRs(0).Length), EditFont, sbRs(0), CSng(measureRect1.X), CSng(measureRect1.Y)) 
    Next 
End Sub 
+0

あなたはオブジェクトを廃棄していません。 – LarsTech

+0

どのオブジェクトを処分する必要がありますか?私が考えることができる唯一のものはGraphicsオブジェクトですが、私はそれを作成せず、そのまま使用します! – Martin

+0

基本的には、* IDispose *:Brushes and Fonts、StringFormatを実装するもの。 'Using(...){}'ブロックは、使い捨てオブジェクトに対してのみ機能するので、ブロックの最後にそれを破棄して、オブジェクトが自分自身の後でクリーンアップされていることを確認する良い方法です。あなたの例では、あなたは正しいので、あなたはそれを作成していない、あなたは、グラフィックオブジェクトを処分しないだろう。 – LarsTech

関連する問題