始终在底部滚动文本框[重复]
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(),应该可以解决所有问题。以上是关于始终在底部滚动文本框[重复]的主要内容,如果未能解决你的问题,请参考以下文章