无法在运行时以编程方式影响闪烁控制

Posted

技术标签:

【中文标题】无法在运行时以编程方式影响闪烁控制【英文标题】:Unable to Affect Scintilla Control Programmatically at Runtime 【发布时间】:2010-03-11 01:24:17 【问题描述】:

我正在尝试在我正在开发的应用程序中使用ScintillaNET control。我将控件拖放到我的表单中并运行表单。该控件出现在窗体上。这很好。此外,如果我在控件的属性编辑器中设置任何属性(例如,ConfigurationManager.Language),我可以输入该语言并看到语法高亮显示。

我遇到问题的地方是我尝试以编程方式更改属性。例如,我尝试将文件中的文本加载到表单中(我在表单的加载中执行此操作)。文字不显示。我似乎也无法显示行号或执行任何其他数量的任务(包括以编程方式更改语言)。

知道我做错了什么吗?即使像下面的代码这样简单的东西似乎也不起作用:

private void scintilla1_Load(object sender, EventArgs e)

    scintilla1.ConfigurationManager.Language = "xml";

【问题讨论】:

【参考方案1】:

只需添加scintilla1.ConfigurationManager.Configure();

private void scintilla1_Load(object sender, EventArgs e)

    scintilla1.ConfigurationManager.Language = "xml";
    scintilla1.ConfigurationManager.Configure();

【讨论】:

自从我从事这个项目以来已经有一段时间了,但感谢您的回复。我希望它可以帮助别人。【参考方案2】:

在玩了一些不同的事件之后,我似乎无法影响 Scintilla 控件,直到它已经可见。因此,在将控件设置为可见之前,“Load”事件不允许我对控件进行任何编程更改。

这有点奇怪,对我来说加载事件似乎毫无意义,但我只是想让大家知道发生了什么,以防其他人遇到同样的问题。

【讨论】:

以上是关于无法在运行时以编程方式影响闪烁控制的主要内容,如果未能解决你的问题,请参考以下文章

在运行时以编程方式激活约束

在使用像 EF 这样的 ORM 时,是不是可以在运行时以编程方式创建新表?

在运行时以编程方式更改 SVG 类

如何在运行 asp.net 页面时以编程方式设置表格背景?

如何在运行时以编程方式计算应用 ID?

如何在其他呼叫运行时以编程方式合并呼叫(电话会议)