我尝试使用ICSharpCode.TextEditor创建一个文本编辑器。我需要在代码的一部分中获得选择的开始和结束。这是我想出的:
List<string> tmp = new List<string> { };
tmp.AddRange(mainTextBox.Text.Split(char.Parse("\n")));
tmp.RemoveRange(Misc.ArrayToString(tmp.ToArray()).ToCharArray().Length - mainTextBox.ActiveTextAreaControl.SelectionManager.SelectionCollection[0].StartPosition.Line, mainTextBox.ActiveTextAreaControl.SelectionManager.SelectionCollection[0].StartPosition.Line - 1);
string tmp2 = string.Join("\n", tmp);
selectionStart = tmp2.ToCharArray().Length + mainTextBox.ActiveTextAreaControl.SelectionManager.SelectionCollection[0].StartPosition.Column;
selectionEnd = selectionStart + mainTextBox.AcitveTextAreaControl.SelectionManager.SelectionCollection[0].Length;
它在第三行崩溃,表明该数字超出范围。我不知道我做错了什么。有一个更好的方法吗?据我所知,ICSharp.TextEditor没有实现此功能 我不知道有什么好的选择。
对不起,我的英语。