122 votes

RichTextBox (WPF) n'a pas de propriété de type chaîne "Text".

J'essaie de définir/obtenir le texte de ma RichTextBox, mais Text ne figure pas dans la liste de ses propriétés lorsque je veux obtenir test.Text...

J'utilise le code derrière en C# (.net framework 3.5 SP1).

RichTextBox test = new RichTextBox();

ne peut pas avoir test.Text(?)

Savez-vous comment cela peut être possible ?

132voto

sma6871 Points 603

À set Texte RichTextBox :

richTextBox1.Document.Blocks.Clear();
richTextBox1.Document.Blocks.Add(new Paragraph(new Run("Text")));

à obtenir Texte RichTextBox :

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

66voto

Il y a eu une confusion entre RichTextBox en System.Windows.Forms et en System.Windows.Control

J'utilise celui du contrôle car j'utilise WPF. Là, il n'y a pas de propriété Text, et pour obtenir un texte, j'aurais dû utiliser cette ligne :

string myText = new TextRange(transcriberArea.Document.ContentStart, transcriberArea.Document.ContentEnd).Text; 

merci

39voto

Stimul8d Points 4730

Le RichTextBox WPF possède un Document pour définir le contenu a la MSDN :

// Create a FlowDocument to contain content for the RichTextBox.
        FlowDocument myFlowDoc = new FlowDocument();

        // Add paragraphs to the FlowDocument.
        myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 1")));
        myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 2")));
        myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 3")));
        RichTextBox myRichTextBox = new RichTextBox();

        // Add initial content to the RichTextBox.
        myRichTextBox.Document = myFlowDoc;

Vous pouvez simplement utiliser le AppendText méthode si c'est tout ce que vous recherchez.

J'espère que cela vous aidera.

16voto

Smile4ever Points 14

En utilisant deux méthodes d'extension, cela devient très facile :

public static class Ext
{
    public static void SetText(this RichTextBox richTextBox, string text)
    {
        richTextBox.Document.Blocks.Clear();
        richTextBox.Document.Blocks.Add(new Paragraph(new Run(text)));
    }

    public static string GetText(this RichTextBox richTextBox)
    {
        return new TextRange(richTextBox.Document.ContentStart,
            richTextBox.Document.ContentEnd).Text;
    }
}

15voto

Chris Amelinckx Points 1304

Il n'y a pas Text dans le contrôle RichTextBox WPF. Voici un moyen de faire sortir tout le texte :

TextRange range = new TextRange(myRTB.Document.ContentStart, myRTB.Document.ContentEnd);

string allText = range.Text;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X