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() の呼び出しが実行されても、結果は同じです。 動作していません

ただし、構文の強調表示を適用しない場合は、機能します。 働く

Scintilla はかなり紛らわしいので、おそらく何か間違ったことをしているのでしょう。

4

1 に答える 1

0

あなたの仕事の後に構文ハイライトが適用されていると思います。または、シンティラのドキュメントを読むと、ホットスポット スタイルには機能が制限されているように見えます。

""" キャレット、選択、およびホットスポット スタイル

選択は、前景色や背景色を変更することによって示されます。これらのいずれかが設定されていない場合、その属性は選択のために変更されません。デフォルトでは、背景を薄い灰色に変更し、前景を選択されていないときと同じままにして、選択を表示します。選択範囲がない場合、現在の挿入ポイントはテキスト キャレットでマークされます。これは通常、ユーザーの注意を引くために点滅している縦線です。"""

構文的にハイライトされていない領域でスタイルのハイライトを強制しようとしましたか? 例としてメインまたは印刷の近く。

背景色を設定して試してみてください。

于 2011-03-08T10:57:38.343 に答える