如何读取 ScintillaNET 类的 Text 属性
Posted
技术标签:
【中文标题】如何读取 ScintillaNET 类的 Text 属性【英文标题】:How to read Text property of ScintillaNET class 【发布时间】:2015-05-24 23:39:09 【问题描述】:我正在尝试使用 ScintillaNET 构建一个简单的 Python 编辑器,现在正在尝试返回输入。
我有一堂课PythonScriptView
:
public class PythonScriptView : Scintilla
// setup python syntax highlighting
还有一个Form
,它由一个PythonScriptView
组件和一个确定按钮组成。在这个类中,我想构建一个函数来显示表单并返回我的PythonScriptView
的 Text 属性。我为另一个使用文本框作为输入字段的小对话框窗口执行了此操作,现在正在尝试使用 scintilla 编辑器进行相同操作:
public string GetUserInput()
ShowDialog();
return ScriptView.Text; // ScriptView is of Type PythonScriptView
当我运行应用程序时,我收到以下错误消息:
An unhandled exception of type 'System.AccessViolationException' occurred in ScintillaNET.dll
有谁知道如何解决这个问题?我还能如何阅读 Text 属性?
编辑:
好像我无法从这个类访问任何属性或方法
【问题讨论】:
为什么要投反对票?这真的是一个愚蠢的问题吗?我什至尝试了它在docs:var text = scintilla.GetTextRange(0, Math.Min(256, scintilla.TextLength));
中所说的字面意思,它引发了同样的异常。
【参考方案1】:
我遇到了同样的问题,并且由于 ScintillaNET 的工作方式,一旦元素被处理,您将无法访问任何属性以关闭表单。我通过将以下事件和属性添加到我的表单中找到了解决方法。
private void FormClosing(object sender, FormClosingEventArgs e)
CachedText = scintilla.Text;
public string CachedText get; private set;
【讨论】:
感谢您的帮助!最终,我还发现它与表单有关,并使用事件处理程序找到了类似的解决方法。不过不像你的那么干净和通用:)以上是关于如何读取 ScintillaNET 类的 Text 属性的主要内容,如果未能解决你的问题,请参考以下文章