0

对于 RCP 文本编辑器,使用 Styledtext。

StyledText 背景图像和文本需要同时滚动。

如何检测自动滚动事件?如果存在。

例如:如果用户按下 END_KEY 并且插入符号所在的行长于 StyledText 控件区域的大小,则控件会自动滚动以显示插入符号的位置。如果用户按下 LEF_ARROW 并且光标位于行的开头并且前一行的长度大于控件大小,则会发生同样的情况。

因此,当检测到自动滚动时,侦听器可以相应地重绘背景。

最新找到的解决方案是为每个产生自动滚动的事件编写侦听器。即为以下内容编写事件:

st.addCaretListener(new CaretListener (){...}; st.addListener(SWT.Modify, new Listener() {...}; ... st.addKeyListener(){...}; st.addMouseListener( ){...};

所以在每个事件里面写代码来绘制背景图像。当控件滚动时通知侦听器,代码应该更有效。

提前致谢

4

0 回答 0