如何防止 ScintillaNET 控件自动滚动?
How to prevent ScintillaNET control from auto scrolling?
我在我的 C# Winforms 应用程序中使用 ScintillaNET 控件。我正在尝试实现一个自动标记功能,该功能将在之前自动完成标记,例如,当用户键入 <html>
时,自动完成功能将触发并插入 </html>
。
我正在为此实现使用 ScintillaNET CharAdded
函数:
if (caretPos != 0)
{
//If the characters before the caret are "ml>" (last three chars from "<html>")
if (TextArea.Text[caretPos - 1] == '>' && TextArea.Text[caretPos - 2] == 'l' && TextArea.Text[caretPos - 3] == 'm')
{
TextArea.Text = TextArea.Text.Insert(caretPos, "</html>");
TextArea.SelectionStart = caretPos + 0;
TextArea.Selections.First();
TextArea.ScrollCaret();
}
}
问题
我的问题是,Scintilla 控件要么一直向上滚动,要么一直向下滚动。我认为 ScrollCaret()
函数会起作用,但它一直在发生。有什么想法吗?
我在我的 C# Winforms 应用程序中使用 ScintillaNET 控件。我正在尝试实现一个自动标记功能,该功能将在之前自动完成标记,例如,当用户键入 <html>
时,自动完成功能将触发并插入 </html>
。
我正在为此实现使用 ScintillaNET CharAdded
函数:
if (caretPos != 0)
{
//If the characters before the caret are "ml>" (last three chars from "<html>")
if (TextArea.Text[caretPos - 1] == '>' && TextArea.Text[caretPos - 2] == 'l' && TextArea.Text[caretPos - 3] == 'm')
{
TextArea.Text = TextArea.Text.Insert(caretPos, "</html>");
TextArea.SelectionStart = caretPos + 0;
TextArea.Selections.First();
TextArea.ScrollCaret();
}
}
问题
我的问题是,Scintilla 控件要么一直向上滚动,要么一直向下滚动。我认为 ScrollCaret()
函数会起作用,但它一直在发生。有什么想法吗?