【问题标题】:Scroll to the end of a Single-Line Textbox in C#在 C# 中滚动到单行文本框的末尾
【发布时间】:2012-06-16 17:01:06
【问题描述】:

关于单行文本框(Multiline属性设置为false),当文本长度超过框的水平大小时,是否可以滚动到行尾?

我尝试了各种适用于多行框的解决方案,但到目前为止都没有奏效。

过去有几个人问过非常相似的问题,但它始终关注多行文本框。我在 SO 上遇到的问题/解决方案如下:

Scroll to bottom of C# TextBox

How do I automatically scroll to the bottom of a multiline text box?

现在我有以下代码(似乎不起作用):

PathText.Text = "";
PathText.AppendText(BrowseDialog.SelectedPath);
PathText.SelectionStart = PathText.TextLength;
PathText.ScrollToCaret();
PathText.Refresh();

PathText 是正在使用的文本框,BrowseDialog 是一个 FileDialog。

非常感谢任何建议。

【问题讨论】:

  • 只是猜测:PathText.SelectionStart = PathText.Text.Length;
  • 你是对的;当我输入问题时,我最初复制了尚未编译的旧代码。感谢您查看它。

标签: c# .net winforms


【解决方案1】:
textBox1.Select(textBox1.Text.Length, 0);
// call focus 
textBox1.Focus();

textBox1.SelectionStart = textBox1.Text.Length;
textBox1.ScrollToCaret();
textBox1.Focus();

【讨论】:

    【解决方案2】:

    你可以这样做:

     PathText.Focus();
     PathText.Select(PathText.Text.Length, 0);
    

    【讨论】:

    • 问题显然出在代码的其他地方,但我会继续将其标记为答案,因为 .Focus();根据我从 Google 搜索中找到的之前的问题和其他讨论,这是该过程的关键部分。不过谢谢!
    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多