在VB.NET中自动滚动到文本框的最后一行

在VB.NET中自动滚动到文本框的最后一行,vb.net,autoscroll,Vb.net,Autoscroll,我正在使用垂直滚动的多行文本框TxtMsgBox。我正在为我的工具使用类似文本框的消息日志,但有一个问题,它不能自动滚动到最后一行,下面有代码。我错过什么了吗 Public Shared Sub WriteConsoleMsg(ByVal ConsoleMsgType As String, ByVal ConsoleMsg As String) Main.txtMsgBox.AppendText(ConsoleMsgType & vbTab & ConsoleMsg &a

我正在使用垂直滚动的多行文本框TxtMsgBox。我正在为我的工具使用类似文本框的消息日志,但有一个问题,它不能自动滚动到最后一行,下面有代码。我错过什么了吗

Public Shared Sub WriteConsoleMsg(ByVal ConsoleMsgType As String, ByVal ConsoleMsg As String)
    Main.txtMsgBox.AppendText(ConsoleMsgType & vbTab & ConsoleMsg & vbCrLf)
    Main.txtMsgBox.ScrollToCaret()
End Sub

不,您不会错过任何东西-不知何故,它不适用于文本框WinForms!控制如果没有问题,请将TextBox控件更改为RichTextBox控件。然后您的方法将按预期工作

TextBox也不适用于我:

RichTextBox的工作方式很有魅力:


另一种选择是操纵文本框的滚动条,但在我看来,这使解决方案变得不必要复杂。

出于好奇,这是在什么VS版本和FW版本上测试的?在VS 2017和Fw 4.7.1中,两个控件的行为是相同的。我实际上无法重现这个问题。只需调用AppendText,文本框就会滚动到末尾。在这种情况下,即使ScrollToCaret也是多余的。