Richtextbox Unterstreichen/Fett/Durchstreichen/Kursive

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Richtextbox Unterstreichen/Fett/Durchstreichen/Kursive

    Hallo!

    Wie ihr euch denken könnt, habe ich ein Frage, und zwar:

    Ich habe 4 Checkboxen, und falls eine davon gecheckt ist, wird dies in My.Settings gespeichert, Und das so:

    Quellcode

    1. If Fett.Checked = True Then My.Settings.Fett = True Else My.Settings.Fett = False
    2. If Durchgestrichen.Checked = True Then My.Settings.Durchgestrichen = True Else My.Settings.Durchgestrichen = False
    3. If Unterstrichen.Checked = True Then My.Settings.Unterstrichen = True Else My.Settings.Unterstrichen = False
    4. If Kursive.Checked = True Then My.Settings.Kursive = True Else My.Settings.Kursive = False


    Nun
    möchte ich, wenn das Programm wieder gestartet wird, und bei z.B. Fett
    gechecked ist, dass ich in der Richtextbox atomatisch fett schreibe. Das
    habe ich noch, doch falls jetzt mehr gechecked sind sollte ich z.B.
    Fett und Kursive und Durchgestrichen schreiben. Doch wie mach ich das
    Vernünftig mache ist unklar. Meine einzige Idee (ich hoffe es gibt eine
    andere Möglichkeit) ist, dass ich jede Möglichkeit durchgege. Doch dies
    wäre sehr umständlich. Geht das also besser?

    Mit freundlichen Grüßen
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%
    z.B. für fett

    VB.NET-Quellcode

    1. Private Sub MeLoad handles MyBase.load
    2. If My.Settings.Fett = True Then
    3. RichTextBox1.Font = New Font(RichTextBox1.Font, FontStyle.Bold)
    4. End If
    5. End Sub



    falls sich der checkstate ändert

    VB.NET-Quellcode

    1. Private Sub StateChanged handles checkbox_Fett.CheckedChanged
    2. If checkbox_Fett.checked = True Then
    3. 'Nicht fett
    4. Else
    5. 'fett
    6. End if
    7. End Sub
    Mehrere Styles kannst Du per Or-Verknüpfung setzen:

    VB.NET-Quellcode

    1. RichTextBox1.Font = New Font("Arial", 20, FontStyle.Bold Or FontStyle.Italic Or FontStyle.Strikeout Or FontStyle.Underline)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Machs doch dann so wie ichs dir geschrieben habe...

    VB.NET-Quellcode

    1. Private Sub MeLoad handles MyBase.load
    2. If My.Settings.Fett = True Then
    3. RichTextBox1.Font = New Font(RichTextBox1.Font, FontStyle.Bold)
    4. End If
    5. If My.Settings.Kursiv = True Then
    6. RichTextBox1.Font = New Font(RichTextBox1.Font, FontStyle.Italic)
    7. End If
    8. 'USW...
    9. End Sub
    So habs ich ja schon bei meinem Code.

    Jedoch wenn ich jetzt z.B. bei Kursiv und bei Fett gechecked habe, dann muss ich ja:

    VB.NET-Quellcode

    1. If My.Settings.Fett = True and My.Settings.kursive = True Then
    2. RichTextBox1.Font = New Font(RichTextBox1.Font, FontStyle.Bold or FontStyle.Italic)
    3. End If
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%
    Lerne die Grundlagen.
    Sieh Dir mal das an:

    VB.NET-Quellcode

    1. Dim style As System.Drawing.FontStyle = FontStyle.Regular
    2. If Fett.Checked = True Then style = style Or FontStyle.Bold
    3. If Durchgestrichen.Checked = True Then style = style Or FontStyle.Strikeout
    4. If Unterstrichen.Checked = True Then style = style Or FontStyle.Underline
    5. If Kursive.Checked = True Then style = style Or FontStyle.Italic
    6. RichTextBox1.Font = New Font("Arial", 20, style)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Kleiner Optimierungsvorschlag beim Speichern der Settings, die If Bedingungen sind völlig sinnlos, du prüfst die Checkbox auf ein boolschen Wert und setzt ein boolschen Wert .. wieso??

    VB.NET-Quellcode

    1. My.Settings.Fett = Fett.Checked


    Das macht doch genau das selbe, abhängig vom CheckState wird die Setting befüllt.