Zum Inhalt springen

Visual Basic Richtextbox ausgewählten Text formatieren


Empfohlene Beiträge

Geschrieben

Hallo,

wie kann ich in Visual Basic bei einer Richtextbox den vom Benutzer ausgewählten Text formatieren (z.B. kursiv schreiben)?

Habe zwar Anleitungen im Internet gefunden allerdings funktionieren diese nicht. Da Microsoft.Interop.Word.Font nicht in System.Drawing umgewandelt werden könnte.

Geschrieben (bearbeitet)

Hi,

das stichwort heißt SelectionFont.

In deinem Kursivbutton sieht das wie folgt aus:


Dim font as System.Drawing.Font = Richtextboxvariablenname.SelectionFont

Richtextboxvariablenname.SelectionFont = new System.Drawing.Font(font.FontFamily, font.Size,font.Style ^ FontStyle.Italic, GraphicsUnit.Point)

Ich weiß jetzt auf die schnelle nicht wie der Xor Operator in VB.net geht.

Must du mal googlen und ^ gegebenenfalls dahingehend ändern.

lg

Gateway

PS:

Kleiner Warnhinweis.

Wenn der selektierte Text verschiedenene Schritarten, Größen oder Styles hat, dann liefert SelectionFont Null oder in deinem Fall Nothing zurück. Also würd ich mich hier noch um ein entsprechendes Handling kümmern.

Bearbeitet von Gateway_man
Geschrieben

Hallo

da ich mich damit unter VB.NET auch schon rumgeschlagen habe geb ich dir noch einen Tipp dazu.

Ich bin wie folgt vorgegangen:

1. Markierung merken


        Dim intBeginSel As Integer = Me.rtf_Text.SelectionStart

        Dim intAnzahlSel As Integer = Me.rtf_Text.SelectionLength

        Dim intEndeSel As Integer = intBeginSel + Me.rtf_Text.SelectionLength

2. FontStyle ermitteln

        '

        Dim FirstFont As System.Drawing.Font = Me.rtf_Text.SelectionFont

        Dim currentFont As System.Drawing.Font = Me.rtf_Text.SelectionFont

        Dim newFontStyle As System.Drawing.FontStyle

3. Buchstabe für Buchstabe Neu Formatieren (Beispiel hier "Bold")

        While intZaehler <= intEndeSel - 1

            Me.rtf_Text.Select(intZaehler, 1)

            currentFont = Me.rtf_Text.SelectionFont

            If FirstFont.Bold = True Then

                newFontStyle = currentFont.Style - Drawing.FontStyle.Bold

            Else

                If currentFont.Bold = False Then

                    newFontStyle = currentFont.Style + Drawing.FontStyle.Bold

                End If


            End If

            Me.rtf_Text.SelectionFont = New Drawing.Font(currentFont.FontFamily,  currentFont.Size, newFontStyle)

            intZaehler += 1

        End While

Gruß Hans-Jörg

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...