好,好,好,那末,帮我回答一下这个问题
闲话少说了。
小弟近日在忙一个脚本编写器,它有vs那种逐键提示功能和关键字体变色功能
现在有若干不满意的地方,苦思良久不得解,故来请教大家。
1,由于richTextBox里面加了控键listBox用来完成逐键提示,还有判断插入点下的单词是否关键字及自动变色等操作,所以有些richTextBox.Redo()操作是未知的。而richTextBox.Text只提供她里面的string,至于哪个字是什么颜色以及详细细节无法得到,故无法用command结构写撤消(如果只记录下Text内容再在每次从新变色,时间上行不通,长的代码加载时判断是否关键字及变色有时要5,6秒),richTextBox是framework控件,无法用序列化,而好象也没有memnberClone()方法保存副本,我对“保存副本”不是很了解,望各位可以提供一个逐过程撤消的方法,小弟无限感激。
2,vs2005有个特点,输入一个字符串时,下面有逐键提示,提示框未关闭时,按空格、等于号等有分隔能力的字符表示输入字符串完毕,关闭提示窗,而如果提示窗未关闭而且已选中一项时按回车则是把插入点下未输入完的单词替换成提示筐(richTextBox内嵌的listBox)选中的选项。在做这个功能时,输入回车在richTextBox的KepDown()事件还没有发生换行,我把焦点转到listBox上,它还是回触发richTextBox的KeyPress事件(估计是绑定了,有keyDown就一定有KeyPress发生)然后插入回车.问题是输入一个关键字后不需要那个回车,我现在是在KepDown()事件把RichTextBox的ReadOnly改成true在KeyUp()时改成false(只是有提示筐时),但虽然变成了ReadOnly,但在KeyPress事件发生十还是会东的响一声(ReadOnly对你输入回车表示不满)很不爽啊,请个位大侠指点一二。