2
var scin = new Scintilla();
ScintillaHotspotStyle = scin.Styles.LastPredefined.Index + 1;
scin.Margins[0].Width = 20;
scin.Caret.HighlightCurrentLine = true;

scin.Styles[ScintillaHotspotStyle].IsHotspot = true;
scin.Styles[ScintillaHotspotStyle].Underline = true;
scin.Styles[ScintillaHotspotStyle].ForeColor = System.Drawing.Color.Blue;

var contents = File.ReadAllText(file);
scin.Text = contents;

//scin.ConfigurationManager.Language = "cpp";
//scin.ConfigurationManager.Configure();

scin.GetRange(2, 5).SetStyle(ScintillaHotspotStyle);

//scin.ConfigurationManager.Language = "cpp";
//scin.ConfigurationManager.Configure();

注释行的顺序无关紧要,也无关 .Configure() 的调用是否执行 - 结果是相同的: 不工作

但是,如果我不应用语法突出显示,它确实有效: 在职的

闪烁非常令人困惑,所以我可能做错了什么 - 但我不确定是什么......

4

1 回答 1

0

我认为语法hiliting 是在你的工作之后应用的。或者,如果您阅读 scintilla 文档,似乎热点样式的功能受到限制。

""" 插入符号、选择和热点样式

通过更改前景色和/或背景色来显示选择。如果未设置其中之一,则不会更改该属性以进行选择。默认设置是通过将背景更改为浅灰色并使前景与未选择时相同来显示选择。当没有选择时,当前插入点由文本插入符号标记。这是一条垂直线,通常会闪烁以吸引用户的注意力。"""

你有没有尝试在一个没有语法hilited的区域强制使用hiliting风格?以靠近 main 或 print 为例。

并通过设置背景颜色来尝试。

于 2011-03-08T10:57:38.343 回答