始终在底部滚动文本框[重复]

Posted

技术标签:

【中文标题】始终在底部滚动文本框[重复]【英文标题】:Scroll of a texbox always on bottom [duplicate] 【发布时间】:2010-09-15 05:08:12 【问题描述】:

有没有办法让多行文本框的滚动保持在底部?

类似vb6的东西

txtfoo.selstart=len(txtfoo.text)

我正在尝试使用 txtfoo.selectionstart=txtfoo.text.length 没有成功。

问候。

【问题讨论】:

您有两种解决方案(您的和@monoxide 的)似乎都可以满足您的需求。我认为你应该接受其中之一。 除非你不能接受自己的解决方案耸耸肩 嗯,我不介意。 How do I automatically scroll to the bottom of a multiline text box? 的可能重复项。 (其实这个问题比较老,但是另一个有更多的答案和更多的投票。) 【参考方案1】:

好的,我发现解决方案是使用

txtfoo.AppendText 

而不是

 txtfoo.text+="something"

【讨论】:

【参考方案2】:

另一种解决方案是使用:

txtfoo.Text += "something";
txtfoo.SelectionStart = txtfoo.Text.Length;
txtfoo.ScrollToCaret();

【讨论】:

【参考方案3】:

有趣的问题。我猜您正在尝试通过表单加载选择文本?我无法让它在表单加载时工作,但我可以在表单点击时工作。奇怪。 :)

Public Class Form1

    Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
        ScrollTextbox()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ScrollTextbox()
    End Sub

    Private Sub ScrollTextbox()
        TextBox1.SelectionStart = TextBox1.TextLength
        TextBox1.ScrollToCaret()
    End Sub

End Class

如果完全有必要,你可以使用计时器。

【讨论】:

我猜这与负载处理程序中尚未正确初始化表单有关。尝试先调用 this.Show(),应该可以解决所有问题。

以上是关于始终在底部滚动文本框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

IOS虚拟键盘遮挡页面底部文本框

文本框的水平滚动条[重复]

在 C# 中滚动到单行文本框的末尾

位置样式为绝对时滚动时的文本框定位问题

当新数据写入富文本框时,它会滚动到底部

移动端软键盘弹出时文本输入框下沉获取焦点并弹出软键盘