martinposer Geschrieben 12. August 2011 Geschrieben 12. August 2011 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.
Gateway_man Geschrieben 12. August 2011 Geschrieben 12. August 2011 (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 12. August 2011 von Gateway_man
martinposer Geschrieben 12. August 2011 Autor Geschrieben 12. August 2011 Echt genial vielen Dank :-)) in VB.net kann man direkt Xor schreiben :-)
HJST1979 Geschrieben 13. August 2011 Geschrieben 13. August 2011 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden