Vb.net 为什么';t ListView.ensureRevible()工作吗?
我正在尝试制作一个支持多线程的应用程序。它有几个不同的选项卡,我有一个选项卡,其中包含每个初始化操作的日志。当我更新日志时,我希望它滚动到底部。我正在使用Vb.net 为什么';t ListView.ensureRevible()工作吗?,vb.net,listview,Vb.net,Listview,我正在尝试制作一个支持多线程的应用程序。它有几个不同的选项卡,我有一个选项卡,其中包含每个初始化操作的日志。当我更新日志时,我希望它滚动到底部。我正在使用ListView控件 Public SubmitLog(ByVal数据作为字符串) 如果数据为“”,则 用lstLogs .Items.Add(新ListViewItem(新字符串(1){Date.Now.ToString(),Data})) .Items.Item(.Items.Count-1).ensureRevible() 以 如果结束
ListView
控件
Public SubmitLog(ByVal数据作为字符串)
如果数据为“”,则
用lstLogs
.Items.Add(新ListViewItem(新字符串(1){Date.Now.ToString(),Data}))
.Items.Item(.Items.Count-1).ensureRevible()
以
如果结束
端接头
为了测试它,我调用了一个简单的循环:
对于I作为整数=0到50
SubmitLog(Path.GetRandomFileName())
下一个
但它不会滚动到最后一项。为什么它没有滚动到底部,我如何才能做到这一点?尝试将
选定的属性设置为true:
If Data <> "" Then
With lstLogs
.Items.Add(New ListViewItem(New String(1) {Date.Now.ToString(), Data}))
.Items.Item(.Items.Count - 1).Selected = True
.Items.Item(.Items.Count - 1).EnsureVisible()
End With
End If
如果数据为“”,则
用lstLogs
.Items.Add(新ListViewItem(新字符串(1){Date.Now.ToString(),Data}))
.Items.Item(.Items.Count-1).Selected=True
.Items.Item(.Items.Count-1).ensureRevible()
以
如果结束
或者只需确保lstLogs
控件具有焦点
这里讨论: