2010-02-04 6 views
0

J'utilise une classe RichTextBox pour effectuer une mise en forme automatique du texte. Et mz question est, comment puis-je obtenir le RichTextBox pour mettre une chaîne immédiatement après le signe d'insertion. Lorsque j'utilise RichTextBox.CaretPosition.InsertTextInRun ("certaine chaîne"), le texte est inséré après le bloc logique en cours, mais j'ai besoin d'être inséré immédiatement après le signe insertion, au milieu d'un bloc d'exécution. J'espère que c'est clair, merci beaucoup.RichTextBox Emplacement physique de CaretPosition

+0

Pouvez-vous expliquer par ce que vous entendez par « Run Block »? – t0mm13b

+0

Bien sûr, le contenu de la Richtextbox est stocké dans une instance de classe Run (qui est un enfant de FlowDocument, utilisé par RichTextBox pour stocker du contenu) –

+0

Pouvez-vous entrer le code de la classe Run? – t0mm13b

Répondre

0

Eh bien, pour insérer du texte après la caret je ferais ceci:

 richTextBox1.Select(richTextBox1.SelectionStart, 0); 
     richTextBox1.SelectedText = "textToInsert"; 

Si vous fournissez des informations supplémentaires dans votre question, je vais tenter de répondre à ma réponse mieux.

+0

La chose est, que j'utilise le WPT RichTextBox (dans l'espace de noms System.Windows), qui n'a pas de méthode Select. Mais la proposition que vous suggérez correspond à mon problème, j'en ai juste besoin pour la RichTextBox de WPF. Merci d'aider. –

0

Je pense que vous avez peut-être résolu ce problème maintenant, mais je répondrai quand même.

C'est ce que j'ai utilisé pour un problème similaire:

public string SelectionText 
{ 
    get { return this.Selection.Text; } 
    set { this.Selection.Text = value; } 
}