VB.NET-RichTextBox-将格式应用于所选文本

时间:2020-03-06 14:29:26  来源:igfitidea点击:

我的表单上有一个RichTextBox控件。我还拥有一个我想要的标记为粗体的按钮,如果有人在RichTextBox中选择文本,然后按下该按钮,则所选文本将变为粗体。有什么办法吗?最终用户的日常简单任务。谢谢。

解决方案

我们将要使用RichTextBox的.SelectionFont属性,并为其分配具有所需样式的Font对象。

示例此代码将在按钮的事件处理程序中:

Dim bfont As New Font(RichTextBoxFoo.Font, FontStyle.Bold)
RichTextBoxFoo.SelectionFont = bfont

上面的一种变体,考虑了根据当前所选文本的字体信息打开/关闭粗体:

With Me.rtbDoc
        If .SelectionFont IsNot Nothing Then
            Dim currentFont As System.Drawing.Font = .SelectionFont
            Dim newFontStyle As System.Drawing.FontStyle

            If .SelectionFont.Bold = True Then
                newFontStyle = currentFont.Style - Drawing.FontStyle.Bold
            Else
                newFontStyle = currentFont.Style + Drawing.FontStyle.Bold
            End If

            .SelectionFont = New Drawing.Font(currentFont.FontFamily, currentFont.Size, newFontStyle)
        End If
    End With

可能需要清理一点,我从一个较旧的项目中删除了此内容。