使用文本框自动滚动到底部

lam*_*988 4 forms ms-access vba

我有一个ms访问的mdb文件.它在表单内部和内部有一个表单,有一个大文本框.

制作此文本框的目的是通过在文本框中添加消息来显示某些工作的进度:

txtStatus.value = txtStatus.value & "Doing something..." & vbCrLf
txtStatus.value = txtStatus.value & "Done." & vbCrLf
Run Code Online (Sandbox Code Playgroud)

但问题是,当文本高度>文本框的高度时,新消息不会自动显示.文本框有一个滚动条,但我必须手动滚动它.我想在弹出新文本时自动滚动到底部.

我试图在On Change属性中添加此代码(从Internet复制),但代码失败,它什么都不做:

Private Sub txtStatus_Change()
    txtStatus.SelStart = Len(txt) - 1
End Sub
Run Code Online (Sandbox Code Playgroud)

我希望有一些简单而美丽的方法来实现这一目标.我不想添加一些只能在某些计算机上运行的代码,因为它依赖于windows平台的内核/等.

Ale*_* K. 12

你可以通过调用sub来做到这一点;

AppendText "Bla de bla bla."
.
.
sub AppendText(strText As String)
    with txtStatus
        .setfocus '//required
        .value = .value & strText & vbNewLine
        .selstart = len(.Value)
    end with
end sub
Run Code Online (Sandbox Code Playgroud)