【问题标题】:How to read Text property of ScintillaNET class如何读取 ScintillaNET 类的 Text 属性
【发布时间】: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)); 中所说的字面意思,它引发了同样的异常。

标签: c# .net winforms scintilla


【解决方案1】:

我遇到了同样的问题,并且由于 ScintillaNET 的工作方式,一旦元素被处理,您将无法访问任何属性以关闭表单。我通过将以下事件和属性添加到我的表单中找到了解决方法。

private void FormClosing(object sender, FormClosingEventArgs e)
{
    CachedText = scintilla.Text;
}

public string CachedText { get; private set; }

【讨论】:

  • 感谢您的帮助!最终,我还发现它与表单有关,并使用事件处理程序找到了类似的解决方法。不过不像你的那么干净和通用:)
猜你喜欢
  • 2011-12-16
  • 2015-09-01
  • 1970-01-01
  • 2023-03-15
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
相关资源
最近更新 更多