C# 如何读取闪烁网类的文本属性
我正试图用闪烁网构建一个简单的Python编辑器,现在正试图返回输入。 我有一个类C# 如何读取闪烁网类的文本属性,c#,.net,winforms,scintilla,C#,.net,Winforms,Scintilla,我正试图用闪烁网构建一个简单的Python编辑器,现在正试图返回输入。 我有一个类PythonScriptView: public class PythonScriptView : Scintilla { // setup python syntax highlighting } 以及一个表单,它由一个PythonScriptView组件和一个OK按钮组成。在这个类中,我想构建一个函数,它显示我的PythonScriptView的表单并返回Text属性。我为另一个使用文本框作为输入字段
PythonScriptView
:
public class PythonScriptView : Scintilla
{
// setup python syntax highlighting
}
以及一个表单
,它由一个PythonScriptView
组件和一个OK按钮组成。在这个类中,我想构建一个函数,它显示我的PythonScriptView
的表单并返回Text属性。我为另一个使用文本框作为输入字段的小对话框做了此操作,现在正在使用闪烁编辑器尝试相同的操作:
public string GetUserInput()
{
ShowDialog();
return ScriptView.Text; // ScriptView is of Type PythonScriptView
}
运行应用程序时,我收到以下错误消息:
闪烁网.dll中发生“System.AccessViolationException”类型的未处理异常
有人知道如何解决这个问题吗?我还可以如何读取文本属性
编辑:
似乎我无法访问此类中的任何属性或方法我遇到了相同的问题,而且由于闪烁网的工作方式,一旦元素被释放到窗体关闭,您似乎无法访问任何属性。我通过在表单中添加以下事件和属性找到了解决方法
private void FormClosing(object sender, FormClosingEventArgs e)
{
CachedText = scintilla.Text;
}
public string CachedText { get; private set; }
为什么要投否决票?这真的是一个愚蠢的问题吗?我甚至试过它在下面的文字中所说的:
var text=scintlla.getextrange(0,Math.Min(256,scintlla.TextLength))代码>引发相同的异常。感谢您的帮助!最后,我还发现它与表单有关,并找到了一个类似的事件处理程序解决方案。但不像你的那样干净和普通:)