如何禁用 RichTextBox color/size 更改 属性?

How to disable RichTextBox color/size changing property?

例如,当我复制三行代码(从VS)并直接粘贴到我的RichTextBox中时,font/size/color会变形(例如"End sub"颜色会变成蓝色).有什么方法可以禁用这个 属性?

假设这是 WinForms,并且由于 RichTextBox 没有默认的上下文菜单,您可能必须使用 Ctrl+V 粘贴内容。在这种情况下,您可以使用 KeyDown 事件来处理文本的粘贴方式。这样的事情应该有效:

Private Sub RichTextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles RichTextBox1.KeyDown
    If (e.Control AndAlso e.KeyCode = Keys.V) Then
        RichTextBox1.Text = RichTextBox1.Text.Insert(RichTextBox1.SelectionStart,
                                                     Clipboard.GetText())
        e.Handled = True
    End If
End Sub

注意:如果您愿意,您还可以捕获较少使用的组合 Shift+Insert

If (e.Control AndAlso e.KeyCode = Keys.V) OrElse (e.Shift AndAlso e.KeyCode = Keys.Insert) Then

可以使用选项工具对文本编辑器的颜色和字体样式进行个性化设置:

Tools => Option => Fonts and Colors => Text Editor (ComboBox selection)

这些样式定义了代码编辑器中显示的文本。

复制和打印样式使用 Printer and Cut/Copy 集定义:

Tools => Option => Fonts and Colors => Printer and Cut/Copy

这适用于 WinForms 和 WPF(这些设置是共享的)。

并非所有样式都包含在粘贴到控件中的 RTF 文本中。
Item backgroung 设置为 Automatic 以匹配目标控件背景颜色设置。

一些风格的周到个性化。代码粘贴在 RichTextBox 控件中。
在选项工具中将字体设置为 TimesNew Roman。
(您需要再次复制代码,如果您更改样式,以应用新设置)