Как отключить свойство изменения цвета / размера RichTextBox?

#vb.net #winforms #richtextbox

#vb.net #winforms #richtextbox

Вопрос:

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

Комментарии:

1. WinForms или WPF?

Ответ №1:

Предполагая, что это 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
  

Ответ №2:

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

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 настраивают шрифт и цвета

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

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

Параметры Visual Studio настраивают шрифт и цвета

Комментарии:

1. Я думаю, что OP использовал копирование текста из VS только в качестве примера. Форматированный текст может поступать из любого другого места.

2. @Ahmed Abdelhameed Ну, может быть. Операционная система написала (…), когда я копирую три строки кода (…) , и цвет «End sub» станет синим . Это кажется довольно специфичным. В конечном итоге OP сообщит нам, каковы фактические намерения.

3. Спасибо за ваши усилия, но синтаксис VS был всего лишь примером (как указано в начале моего вопроса), для лучшего понимания взгляните на эту ссылку , а затем на эту ссылку . (первый вставляется после вставки его в другое место, а второй вставляется непосредственно в rtb) Это будет решено, только если я скопирую код и вставлю его в другое место.

4. Вы хотите скопировать / вставить код из Visual Studio или нет? Любой общий источник? Вы должны быть явными, когда описываете, что вы ищете. Конечно, если вы скопируете код из VS и вставьте его, скажем, в Блокнот, а затем скопируйте / вставьте его обратно, все настройки цвета будут потеряны. Что вы на самом деле пытаетесь сделать? Если вы хотите скопировать / вставить код из VS и использовать один цвет, установите для всех параметров цвета один и тот же цвет. Это одна из возможностей. Или скопируйте обратно обычный текст, — то, что показывает Ахмед Абдельхамид.

5. Вы хотите сохранить , хотите потерять или хотите настроить параметры цвета / шрифта, которые прилагаются к тексту?