Применить несколько стилей шрифтов к Richtextbox

#vb.net #visual-studio

#vb.net #visual-studio

Вопрос:

мне нужна помощь, чтобы выяснить, как установить жирный шрифт, курсив, подчеркивание для одного и того же текста в richtextbox .. До сих пор я делал это…

 Public Class Form1
    Dim texto As String

    Public Sub seleccionCB()

        If CBNegrita.Checked = True Then
            txtTexto.Font = New Font(txtTexto.Font, FontStyle.Bold)

        Else
            txtTexto.Font = New Font(txtTexto.Font, FontStyle.Regular)
            If CBCursiva.Checked = True Then
                txtTexto.Font = New Font(txtTexto.Font, FontStyle.Italic)
            Else
                txtTexto.Font = New Font(txtTexto.Font, FontStyle.Regular)
                If CBSub.Checked = True Then
                    txtTexto.Font = New Font(txtTexto.Font, FontStyle.Underline)
                Else
                    txtTexto.Font = New Font(txtTexto.Font, FontStyle.Regular)
                End If

            End If

        End If

    End Sub
  

Комментарии:

1. ваши IFS вложены, поэтому в итоге вы получите только одну настройку вместо сочетания жирного шрифта с курсивом или что-то еще. Сравните ваш вопрос «как установить полужирный И курсивный И …» с кодом, который настроен на предположение, является ли он полужирным ИЛИ курсивным ИЛИ…

Ответ №1:

Вы можете объединить несколько значений, используя побитовый Or оператор, например:

 txtTexto.Font = New Font(txtTexto.Font, FontStyle.Bold Or FontStyle.Italic)
  

Однако в вашем случае, когда вам нужно проверить каждый из них с условием, вы можете сделать это следующим образом:

 Dim style As FontStyle = FontStyle.Regular
If CBNegrita.Checked Then style = style Or FontStyle.Bold
If CBCursiva.Checked Then style = style Or FontStyle.Italic
If CBSub.Checked Then style = style Or FontStyle.Underline
txtTexto.Font = New Font(txtTexto.Font, style)
  

Комментарии:

1. спасибо, парень .. это работает как шарм …! У меня были дни в Google