在Richtextbox Textchanged事件之后触发事件

时间:2014-11-04 08:34:57

标签: c# wpf events richtextbox

我正在写一个词法分析器,我也希望我的文本编辑器能够改变关键词的颜色。打字时!喜欢VS和......!但问题是RichTextBox的TextChanged事件触发BEFOR将文本添加到它。

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

PS:我正在写一个WPF项目!

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

2 个答案:

答案 0 :(得分:3)

更改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

后触发事件

答案 1 :(得分:1)

你可以使用keyUp事件,它会在键盘上的键被释放时触发。

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

你可能需要添加额外的逻辑来避免像shift那样的按键,这些按键很难做到,甚至可能都不需要。