c# - "scroll"单行文本框

标签 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)

最佳答案

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

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

关于c# - "scroll"单行文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12924814/

相关文章:

c++ - 在自定义文本区域中呈现光标的正确方法?

c# - TextBox文本作为参数n Double事件

c# - WinForms - 如何在应用程序设置中保存组合框选择?

c# - 保存 .NET 用户设置需要很长时间

.net - PropertyGrid - 可以定制吗?

HTML 文本输入 : Avoid submit when enter is pressed

c# - 如何在 C# 中重载 [] 运算符

c# - 尽管有些文本框是空白的,如何将数据更新到mysql? (空白文本框的数据将被保留)

c# - 您知道哪些使用 Entity Framework 和 DbContext 的模式和实践?

C# Mandrill-dotnet SendMessageTemplate 序列化错误发布