Свойство RichTextBox.Selection не обнаружено Visual Studio.Отсутствует использование ссылки? - PullRequest
0 голосов
/ 27 июня 2019

Я хочу использовать свойство выбора из моего RichTextBox.Я добавил ссылку на PresentationFramework.dll в моем проекте и ссылку на использование пространства имен System.Windows.Controls в моем коде.Согласно документации Microsoft, это должно работать ( RichTextBox.Selection Property )

Однако Visual Studio не удается найти myRichTextBox.Selection и выдает ошибку.Я пропускаю какую-то ссылку или что-то в этом роде?

Код, выдающий ошибку, состоит в следующем: это функция, которая получает текст RTF и загружает его в RichTextBox с расширенным форматом

 private void LoadRTF(string RTFtext)
 {
     MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(RTFtext));
     myRichTextBox.Selection.Load(stream, DataFormats.Rtf);
 } //LoadRTF

Ноздесь Visual Studio не распознает свойство Selection.Даже простая строка вроде

 TextSelection ts = myRichTextBox.Selection; 

выдает такую ​​же ошибку

Ответы [ 2 ]

3 голосов
/ 27 июня 2019

Поскольку вы используете элемент управления Windows Forms RichTextBox, свойство Selection недоступно.Вы можете использовать либо SelectedText , либо свойство SelectedRtf , чтобы получить текущий выбранный контент.

Что касается части, в которую вы хотите загрузить контент из MemoryStream вэлемент управления, вы можете использовать перегрузку LoadFile(Stream, RichTextBoxStreamType) метода LoadFile , например:

private void LoadRTF(string RTFtext)
{
    MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(RTFtext));
    myRichTextBox.LoadFile(stream, RichTextBoxStreamType.RichText);
}

Наконец, если вы действительно хотите использовать элемент управления WPF RichTextBox в приложении Winforms,Вы можете сделать это с помощью элемента управления ElementHost, как описано здесь .

0 голосов
/ 27 июня 2019

Используйте приведенный ниже код для получения значения из RichTextbox

string richText = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd).Text;
...