vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: RichtextBox Hintergrundfarbe einer Zeile 
Autor: Brian
Datum: 01.08.10 17:33

Hallo Woermy,

das hier hab ich mal im Internet gefunden, wobei mir der Autor leider unbekannt ist.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
  System.EventArgs) Handles Button1.Click
        Const KORREKTURWERT As Single = -0.7          ' Ggf. anpassen !!!
 
        Dim g As Graphics = RichTextBox1.CreateGraphics
 
        Dim BreiteTextbox As Single
        Dim BreiteText As Single
        Dim BreiteLeerzeichen As Single
 
        Dim AnzahlLeerzeichen As Integer
 
        Dim Zeilenindex As Integer = 4
        Dim Zeilentext As String
 
        With RichTextBox1
            Zeilentext = .Lines(Zeilenindex)            ' Text der Originalzeile
 
            BreiteLeerzeichen = g.MeasureString(" ", RichTextBox1.Font).Width + _
              KORREKTURWERT ' Breite des Leerzeichens
            BreiteTextbox = .Size.Width                 ' Breite der RichTextBox
            BreiteText = g.MeasureString(Zeilentext & "*", .Font).Width ' 
            ' Breite des Textes
 
            AnzahlLeerzeichen = CInt((BreiteTextbox - BreiteText) / _
              BreiteLeerzeichen) ' Anzahl der notwendigen Leerzeichen
 
            If AnzahlLeerzeichen > 0 Then
                Zeilentext = .Lines(Zeilenindex) & Space(AnzahlLeerzeichen) ' 
                ' Leerzeichen anfügen
            End If
 
            .Select(.GetFirstCharIndexFromLine(Zeilenindex), .Lines( _
              Zeilenindex).Length) ' Ab Index, Länge
            .SelectedText = Zeilentext                  ' Original ersetzen
 
            .Select(RichTextBox1.GetFirstCharIndexFromLine(Zeilenindex), .Lines( _
              Zeilenindex).Length) ' Ab Index, Länge
            .SelectionBackColor = Color.LightGreen      ' Zeile erneut markieren
        End With
 
    End Sub
Info: Leider liefert .MeasureString für das Leerzeichen eine etwas ungenaue Größenangabe, daher die Anpassung durch einen (aus der Erfahrung und Versuchen) passenden Korrekturwert.

Beste Wünsche,
Bran
---
Du stolperst nicht durch die Steine die Dir in den Weg gelegt werden,
sondern durch die Einfallslosigkeit ihnen aus dem Weg gehen zu können.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
RichtextBox Hintergrundfarbe einer Zeile1.680woerny0101.08.10 11:09
Re: RichtextBox Hintergrundfarbe einer Zeile940Brian01.08.10 17:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel