Mig*_*ell 5 c# colors richtextbox selection selectionchanged
我有一个WinForms程序,无论何时更改选择,RichTextBox都需要更改某些其他文本的颜色。为此,它必须选择该文本,因此我丢失了当前选择。
我可以保存和加载SelectionStart和SelectionLength属性,但不能保留“选择方向”:如果用户是从光标向前或向后突出显示。
关于如何保存选择方向或为文本着色而无需更改选择的任何想法?
哎呀,丑陋的问题。不可以,EM_SETPARAFORMAT 只能对当前选择起作用。并且 EM_EXSETSEL 始终将插入符号放在选择的末尾。您可以通过观察 SelectionStart 的变化来检测选择方向,但无法将插入符号放在正确的位置。编辑控件也有同样的问题。
这通常不是问题,因为仅当用户修改文本时才会发生重新着色,而不是在选择文本时发生。我能想到的唯一解决方法是通过注入击键来恢复选择。太丑了。