【问题标题】: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? 的可能重复项。 (其实这个问题比较老,但是另一个有更多的答案和更多的投票。)

标签: c# winforms


【解决方案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(),应该可以解决所有问题。
      猜你喜欢
      • 2013-03-15
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多