2014-11-04 145 views
-1

我在写一个词法分析器,我还希望我的文本编辑器能够更改关键字的颜色。输入时!像VS和...!但问题是RichTextBox的TextChanged事件在添加文本之前触发。Richtextbox Textchanged事件后触发事件

是否有任何预先定义的事件,在将文本添加到richTextBox后触发?如果不是,我怎么能创建一个,在输入文本后进行写入!

PS:我在写一个WPF项目!

private void rtxMain_TextChanged (object sender, TextChangedEventsArgs e) { 
    visual.getLastWord(); 
} 
+0

更改“RichTextBox”文本后触发'TextChanged'事件。你如何得到它的文本? – Shaharyar 2014-11-04 08:44:17

回答

0

您可以使用keyUp事件,当键盘上的某个按键被释放时,它会触发。

RichTextBox r = new RichTextBox(); 
r.KeyUp += (s, e) => 
{ 
    //your logic 
}; 

您可能需要添加额外的逻辑,以避免像移按键,其心不是很难做到的,甚至不neccesary。

+0

我不工作!当我跟踪我的应用程序时,keyUp事件发生在textChanged之前,因此它是无用的:| ! – 2014-11-04 08:48:07

+1

你在做别的错误keyup事件在richtextbox中写入字母后触发,因为字母写在按键上,而键不能在它后面发生 – Vajura 2014-11-04 09:53:14

1

TextChnaged事件在更改文本RichTextBox后触发。下面是它的一个工作示例:

private void richtextBox1_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    string text = new TextRange(richtextBox1.Document.ContentStart, richtextBox1.Document.ContentEnd).Text; 
    MessageBox.Show(text); 
} 

不管我键入到richtextBox1,它显示我在MessageBox值完全相同。这意味着它在更改Text后触发事件。

+0

那么为什么我输入的字符不会显示在文本框中,当我断点textchanged事件!当我放置一个breakPoint时,我输入的字符在getLastWord()执行后立即添加到richtextbox中!这就是为什么我要这样做 – 2014-11-04 08:59:03

+0

@MohammadNej你在说什么,你不是说得很清楚。文本更改后触发TextChanged。 – Paparazzi 2014-11-04 13:30:36