2015-05-24 83 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

謝謝你的幫助!最終,我還發現它與表單有關,並找到了類似的事件處理函數。不像你的那樣乾淨和通用,儘管:) –