Как отключить изменение цвета / размера RichTextBox? - PullRequest
0 голосов
/ 21 апреля 2019

Например, когда я копирую три строки кода (из VS) и вставляю их непосредственно в мой RichTextBox, шрифт / размер / цвет будет деформирован (например, цвет «End sub» станет синим).Есть ли способ отключить это свойство?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Цвета и стили шрифта текстового редактора можно разбить на части с помощью инструмента «Параметры»:

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

Эти стили определяют текст, представленный в редакторе кода.

Стили копирования и печати определяются с использованием набора Printer and Cut/Copy:

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

Это относится как к WinForms, так и к WPF (эти настройки являются общими).

Visual Studio Options personalize font and colors

Не все стили включены в текст RTF, вставленный в элемент управления.
Установите Item backgroung вAutomatic в соответствии с целевым параметром Control BackColor.

Продуманная персонализация некоторых стилей.Код вставляется в элемент управления RichTextBox.
Для шрифта установлен параметр TimesNew Roman в инструменте «Параметры».
(При повторном изменении стилей необходимо скопировать код, чтобы применить новые настройки)

Visual Studio Options personalize font and colors

0 голосов
/ 21 апреля 2019

Предполагая, что это 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 + Вставить , если хотите:

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