FastColoredTextBox Custom syntax highlighting Problem

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von DerTuner.

    FastColoredTextBox Custom syntax highlighting Problem

    Guten Nachmittag,
    Ich Programmier derzeit eine Eigene IDE, dafür brauche ich Syntax Highlighting, es funktioniert an sich schon recht gut.
    Aber nun hab ich gemerkt das es im Zusammenhang gehighlightet werden muss.

    (Beispiel aus einer anderen IDE)

    So sollte es das aussehen, aber wie geht das?

    Ich nutze übrigens das;
    codeproject.com/Articles/16187…x-for-syntax-highlighting
    Hi,
    soweit ich weis, kannst Du eigene Styles festlegen mit denen Du dies erreichst.
    Schau Dir mal die Samples an, ziemlich am Ende des Artikels ist auch gezeigt, wie man eigene Styles implementiert.
    "Hier könnte Ihre Werbung stehen..."
    Hab ich gestern bereits gelesen, verstehe das aber nicht wirklich
    Das nutze ich derzeit;

    VB.NET-Quellcode

    1. Class SurroundingClass
    2. Private GreenStyle As Style = New TextStyle(Brushes.Green, Nothing, FontStyle.Italic)
    3. Private Sub fastColoredTextBox1_TextChanged(ByVal sender As Object, ByVal e As TextChangedEventArgs)
    4. e.ChangedRange.ClearStyle(GreenStyle)
    5. e.ChangedRange.SetStyle(GreenStyle, "execute", RegexOptions.Multiline)
    6. End Sub
    7. End Class


    MichaHO
    Meinst du das Custom style sample ?
    Fals ja, ich verstehe den code nicht (kann nur vb.net)

    C#-Quellcode

    1. class EllipseStyle : Style
    2. {
    3. public override void Draw(Graphics gr, Point position, Range range)
    4. {
    5. //get size of rectangle
    6. Size size = GetSizeOfRange(range);
    7. //create rectangle
    8. Rectangle rect = new Rectangle(position, size);
    9. //inflate it
    10. rect.Inflate(2, 2);
    11. //get rounded rectangle
    12. var path = GetRoundedRectangle(rect, 7);
    13. //draw rounded rectangle
    14. gr.DrawPath(Pens.Red, path);
    15. }
    16. }

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „DerTuner“ ()

    VB.NET-Quellcode

    1. Class EllipseStyle
    2. Inherits Style
    3. Public Overrides Sub Draw(ByVal gr As Graphics, ByVal position As Point, ByVal range As Range)
    4. Dim size As Size = GetSizeOfRange(range)
    5. Dim rect As Rectangle = New Rectangle(position, size)
    6. rect.Inflate(2, 2)
    7. Dim path = GetRoundedRectangle(rect, 7)
    8. gr.DrawPath(Pens.Red, path)
    9. End Sub
    10. End Class


    Habs dir mit nem Code Converter mal übersetzt. Verstehst du den jetzt vielleicht besser? Wichtig ist, dass du verstehst, ;) welche Deklaration welches Steuerelement anspricht und welche Funktion wann ausgelöst wird, dann kannst du den ganz leicht einfügen.
    An die entsprechende Stelle im Code.
    Natürlich das Inherits Style nicht in eine Sub rein und die EllipseStyle Class nicht in die public Class, entweder weglassen oder als komplette neue Klasse unterhalb erstellen. Da weiss ich nicht genau, wie das besser ist, habe leider gerade den PC nicht vor mir.

    Kann ich dir daher nicht aus dem Kopf sagen. :(

    DerTuner schrieb:

    Jetzt verstehe ich den Code, aber wo soll man den "Satz" einfügen ?

    Das ist eine sehr wiedersprüchliche Aussage !
    Ich denke du verstehst es eben nicht, kannst/willst das aber nicht zugeben.
    So kann aber keiner deinen Kentnisstand einschätzen, was Hilfe eher erschwert !