【发布时间】:2019-04-21 08:53:20
【问题描述】:
例如,当我复制三行代码(来自 VS)并直接粘贴到我的 RichTextBox 中时,字体/大小/颜色会变形(例如“End sub”颜色会变成蓝色)。有什么办法可以禁用这个属性?
【问题讨论】:
-
WinForms 还是 WPF?
标签: vb.net winforms richtextbox
例如,当我复制三行代码(来自 VS)并直接粘贴到我的 RichTextBox 中时,字体/大小/颜色会变形(例如“End sub”颜色会变成蓝色)。有什么办法可以禁用这个属性?
【问题讨论】:
标签: vb.net winforms richtextbox
假设这是 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 以匹配目标 Control BackColor 设置。
一些风格的深思熟虑的个性化。代码粘贴在 RichTextBox 控件中。
字体在选项工具中设置为 TimesNew Roman。
(如果更改样式,则需要再次复制代码以应用新设置)
【讨论】: