我有一个带有后台线程的 Windows 窗体文本框,它每秒更新一次它的值。如果我将光标放在文本框中,它将在下次更新时失去其当前位置。与文本选择相同。
我试图这样解决它
protected void SetTextProgrammatically(string value)
{
// save current cursor position and selection
int start = textBox.SelectionStart;
int length = textBox.SelectionLength;
// update text
textBox.Text = value;
// restore cursor position and selection
textBox.SelectionStart = start;
textBox.SelectionLength = length;
}
它大部分时间都很好用。这是它不起作用的情况:
1)我将光标放在文本框中文本的末尾
2)按 SHIFT 并使用 <- 箭头键将光标向左移动
选择将无法正常工作。
它看起来像组合SelectionStart=10
并SelectionLength=1
自动将光标移动到位置 11(不是我想要的 10)。
如果有什么我能做的,请告诉我!我正在使用 Framework.NET 2.0。
必须有一种方法可以在文本框中设置光标位置,而不是SelectionStart+SelectionLength
.