在 C# 中滚动到单行文本框的末尾
Posted
技术标签:
【中文标题】在 C# 中滚动到单行文本框的末尾【英文标题】:Scroll to the end of a Single-Line Textbox in 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; 你是对的;当我输入问题时,我最初复制了尚未编译的旧代码。感谢您查看它。 【参考方案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 搜索中找到的之前的问题和其他讨论,这是该过程的关键部分。不过谢谢!以上是关于在 C# 中滚动到单行文本框的末尾的主要内容,如果未能解决你的问题,请参考以下文章
如何在不丢失setfocus的情况下将光标设置到文本框的末尾?