Как и при копировании простого текста, вы бы использовали Clipboard.SetText
метод .Это очищает текущее содержимое буфера обмена Windows и добавляет к нему указанный текст.
Для копирования отформатированного текста необходимо использовать перегрузку этого метода , который принимает TextDataFormat
параметр.Это позволяет вам указать формат текста, который вы хотите скопировать в буфер обмена.В этом случае вы должны указать TextDataFormat.Rtf
или текст, состоящий из данных в формате расширенного текста.
Конечно, чтобы это работало, вам также нужно будет использовать свойство Rtf
элемента управления RichTextBox
для извлечения его текста с форматированием RTF.Нельзя использовать обычное Text
свойство , поскольку оно не включает информацию о форматировании RTF.Как следует из документации:
Свойство Text
не возвращает никакой информации о форматировании, примененном к содержимому RichTextBox
.Чтобы получить коды форматированного текста (RTF), используйте свойство Rtf
.
Пример кода:
' Get the text from your rich text box
Dim textContents As String = myRichTextBox.Rtf
' Copy the text to the clipboard
Clipboard.SetText(textContents, TextDataFormat.Rtf)
И после того, как текств буфере обмена вы (или пользователь вашего приложения) можете вставить его куда угодно.Чтобы вставить текст программно, вы будете использовать метод Clipboard.GetText
, который также принимает параметр TextDataFormat
.Например:
' Verify that the clipboard contains text
If (Clipboard.ContainsText(TextDataFormat.Rtf)) Then
' Paste the text contained on the clipboard into a DIFFERENT RichTextBox
myOtherRichTextBox.Rtf = Clipboard.GetText(TextDataFormat.Rtf)
End If