2014-03-03 3 views
0

Если я скопирую текст в другом формате и вставляю его в свой богатый текст, я не имею в виду, что его формат будет скопирован.Как вставить текст в RichTextBox как обычный текст

В любом случае, я могу скопировать-вставить как обычный текст? Кстати, моя программа находится на WinForm

спасибо за любой ответ

+1

Скопируйте и вставьте текст в блокнот, а затем скопировать из блокнота и вставить в свой RichTextBox. –

+2

Тогда я думаю, что пользователь не был бы доволен этим способом – EmPlusPlus

ответ

5

вы должны использовать WinForm RichTextBox (не в UI, только в коде), даже если вы находитесь на WPF, чтобы преобразовать RTF в обычный текст. Используйте этот метод в событии Копировать.

C# код:

private String ConvertRtfToText() 
{ 
    System.Windows.Forms.RichTextBox rtfBox = new System.Windows.Forms.RichTextBox(); 
    rtfBox.Rtf = this.rtfData; 

    return rtfBox.Text; 
} 

VB.Net Код:

Private Function ConvertRtfToText() As String 
    Dim rtfBox As RichTextBox = New RichTextBox() 
    rtfBox.Rtf = Me.rtfData 
    Return rtfBox.Text 
End Function 

Источник: http://msdn.microsoft.com/en-US/en-en/library/vstudio/cc488002.aspx

+0

спасибо за asnwer. Я хотел спросить тебя, что ты имеешь в виду у меня? Поскольку Me относится к форме и не имеет метода rtfData – EmPlusPlus

+0

, это зависит от того, где вы помещаете код. rtfData - это переменная класса, в которой вы пишете код. Это строка, представляющая rtf. – Xaruth

1

Я недавно была такая же проблема. Я действительно хотел сохранить некоторые форматирования, т. Е. Абзацы и фиды строк, но мне потребовался весь текстовый формат добавления.

Я работаю в WPF, но интерфейс RichTextBox такой же. Я создал кнопку, которая позволит пользователям выбирать текст и удалять форматирование. Это очень просто, вам просто нужно использовать метод ClearAllProperties() на объекте TextSelection.

C# код (WPF):

private void ClearFormat_Click(object sender, RoutedEventArgs e) 
    {   
     rtbText.Selection.ClearAllProperties(); 
    } 
Смежные вопросы