用户更改 RichTextBox 中所选文本的字体

User Change Font of Selected Text in RichTextBox

这应该很容易,但它让我望而却步。我在 VB.NET 中有一个 RichTextBox,用户可以在其中输入文本。我希望他们能够 select 一些文本,然后更改 selection 的字体属性。

这是我为您快速编写的内容。

它将获取系统上所有已安装的字体并将它们添加到组合框中,因此您不必添加它们都是手动的。

我也做到了,所以每当你更改我添加的组合框的字体类型时,它都会更新 RichTextBox 的字体。

Imports System.Drawing.Text
Public Class Form1
''CREATE ANOTHER COMBOBOX TO CHANGE THE SIZE OF THE TEXT USING THE SAME METHOD
''AS THE FONT COMBOBOX.
Dim FONTSIZE = 8
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim InstalledFonts = New InstalledFontCollection
    Dim FontFamilies() As FontFamily = InstalledFonts.Families

    For Each Font As FontFamily In FontFamilies
        ComboBox1.Items.Add(Font.Name)
    Next
    ''THE END USER WONT BE ABOUT TO EDIT THE INSTALLED ITEMS IN THE COMBOBOX
    ''THE STARTING FONT IS CONSOLAS
    ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
    ComboBox1.Text = "Consolas"
    End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    ''THIS WILL CHANGE THE HIGHLIGHTED "SELECTED" TEXT FONT ONLY
    ''AS ASKED FOR IN QUESTION
    RichTextBox1.SelectionFont = New Drawing.Font(ComboBox1.Text, FONTSIZE)
End Sub
End Class

您需要为您的表单添加一个组合框和一个富文本框才能正常工作。

如果您有任何问题,请告诉我,我会尽力帮助您工作。

谢谢 Werdna,你的回答给了我一些方向。我确实使用了 FontDialog,因为最后我想允许其他字体更改,例如样式和颜色。

Private Sub rtf_Notes_MouseUp(sender As Object, e As MouseEventArgs) Handles rtf_Notes.MouseUp
    'Test for right-click
    If (e.Button = Windows.Forms.MouseButtons.Right) Then
        With FontDialog1
            .ShowColor = True
            If (.ShowDialog() = Windows.Forms.DialogResult.OK) Then
                rtf_Notes.SelectionFont = New Drawing.Font(.Font.Name, .Font.Size, .Font.Style)
                rtf_Notes.SelectionColor = .Color
            End If
        End With
    End If
End Sub