滚动式单行文本框

3
我正在尝试在选定文本的情况下将单行文本框向左“滚动”,而不改变选择。如上图所示,我有一个名为A的文本框,其中字母M到Z被选中,但我看不到文本框开头的字母。手动拖动选择从Z到M,可以滚动可见区域,以便左侧的字母变得可见,这是文本框B的情况。使用下面的代码,我可以滚动到开头,但我会失去选择。
  txtTest.SelectionStart = 0;
  txtTest.SelectionLength = 0;
  txtTest.ScrollToCaret();

我怎样才能在程序中选择M到Z,同时在文本框中显示第一个字符呢?(如上图B所示)

请查看此链接(https://dev59.com/7V_Va4cB1Zd3GeqPTG3E[1]) - Badar
1个回答

0

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

int originalSelectionStart = txtTest.SelectionStart;
int originalSelectionLength = txtTest.SelectionLength;
txtTest.SelectionStart = 0;
txtTest.SelectionLength = 0;
txtTest.ScrollToCaret();
txtTest.SelectionStart = originalSelectionStart;
txtTest.SelectionLength = originalSelectionLength;

我刚刚测试了你的代码,但是似乎文本框自动将可见区域移动到选择的末尾。这会将前几个字母再次滚出视野。 - user1751517

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接