我正在写一个词法分析器,我也希望我的文本编辑器能够改变关键词的颜色。打字时!喜欢VS和......!但问题是RichTextBox的TextChanged事件触发BEFOR将文本添加到它。
在将文本添加到richTextBox之后是否有任何预先定义的事件触发写入?如果没有,我怎么能创建一个输入文本后写入!
PS:我正在写一个WPF项目!
private void rtxMain_TextChanged (object sender, TextChangedEventsArgs e) {
visual.getLastWord();
}
答案 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那样的按键,这些按键很难做到,甚至可能都不需要。