用户更改 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
这应该很容易,但它让我望而却步。我在 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