文本框的滚动条始终在底部

4

有一种方法可以让多行文本框滚动到底部吗?

例如在vb6中。

txtfoo.selstart=len(txtfoo.text)

我尝试使用 txtfoo.selectionstart=txtfoo.text.length,但没有成功。
谢谢。

你有两个解决方案(你自己的和@monoxide的),它们似乎都能实现你想要的功能。我认为你应该接受其中一个。 - Hamish Smith
除了你不能接受自己的解决方案之外,耸肩 呃,我不介意。 - Matthew Scharley
可能是重复的问题,与如何自动滚动到多行文本框底部?相同。(实际上这个问题更早,但另一个问题有更多的答案和投票。) - Brian Rogers
3个回答

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


txtfoo.AppendText 

替代

 txtfoo.text+="something"

4
另一种解决方案是使用:
txtfoo.Text += "something";
txtfoo.SelectionStart = txtfoo.Text.Length;
txtfoo.ScrollToCaret();

0
有趣的问题。我猜你是试图在表单加载时选择文本?我无法在表单加载时让它工作,但是我可以在表单单击上工作。奇怪。 :)
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(),应该可以解决任何问题。 - Matthew Scharley

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