2015-05-24 115 views
1

我想用ScintillaNET构建一个简单的Python编辑器,现在正在尝试返回输入。 我有一个类PythonScriptView如何阅读ScintillaNET类的Text属性

public class PythonScriptView : Scintilla 
{ 
    // setup python syntax highlighting 
} 

Form其由PythonScriptView部件和OK按钮的。在这个类的内部,我想构建一个函数来显示窗体并返回我的PythonScriptView的Text属性。我这样做是为了它使用文本框的输入字段,现在试图与火花编辑器相同的另一个小对话窗口:

public string GetUserInput() 
    { 
     ShowDialog(); 
     return ScriptView.Text; // ScriptView is of Type PythonScriptView 
    } 

当我运行的应用程序,我得到了以下错误消息:

An unhandled exception of type 'System.AccessViolationException' occurred in ScintillaNET.dll

有谁知道如何解决这个问题?我还可以怎样读取Text属性?

编辑:

好像我不能从这个类访问任何属性或方法

+0

为什么要downvote?这真的是一个如此愚蠢的问题吗?我甚至尝试了它在[docs](https://github.com/jacobslusser/ScintillaNET#retrieve-text)中所说的内容: var text = scintilla.GetTextRange(0,Math.Min(256,scintilla.TextLength ));'这引发了相同的异常。 –

回答

2

我有同样的问题,看来,由于ScintillaNET的工作方式,你不能一旦元素处理完成就可以访问任何属性。我找到了解决方法,将以下事件和属性添加到我的表单中。

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

public string CachedText { get; private set; } 
+0

谢谢你的帮助!最终,我还发现它与表单有关,并找到了类似的事件处理函数。不像你的那样干净和通用,尽管:) –