“滚动”单行文本框

时间:2012-10-16 23:08:33

标签: c# winforms textbox scroll caret

我试图在选择一些文字时向左“滚动”单行文本框,而不更改选择。

enter image description here

在上面的图片中,我有一个文本框A,选择字母M到Z,但我看不到文本框开头的字母。

文本框B是我手动完成的操作,将选择从Z反向拖动到M,滚动可见区域,使左边的字母变为可见。

通过使用下面的代码,我可以滚动到开头,但我将失去选择。

  txtTest.SelectionStart = 0;
  txtTest.SelectionLength = 0;
  txtTest.ScrollToCaret();

如何在仍然显示文本框中的第一个字符的同时以编程方式选择M到Z? (如上图B)

1 个答案:

答案 0 :(得分:0)

未经测试,但是当您在帖子中调用该段代码时,您可以记录插入符号的当前位置。然后再次启用该选择。

int originalSelectionStart = txtTest.SelectionStart;
int originalSelectionLength = txtTest.SelectionLength;
txtTest.SelectionStart = 0;
txtTest.SelectionLength = 0;
txtTest.ScrollToCaret();
txtTest.SelectionStart = originalSelectionStart;
txtTest.SelectionLength = originalSelectionLength;
相关问题