美好的一天。
我目前正在创建某种广告应用。它是从上到下滚动的简单文本,并将再次重复。我目前正在使用listview在c#中执行此操作。列表视图中显示的文本将来自数据库。我正在使用计时器自动刷新表单。问题是如何在每次表单加载时自动移动或自动从顶部滚动到底部,并且每次完成时都会重复。
谢谢。
这是King King先生要求的代码。
private void timer1_Tick(object sender, EventArgs e)
{
this.Refresh();
listView1.TopItem = listView1.Items.Cast<ListViewItem>().LastOrDefault();
}
答案 0 :(得分:3)
您可以将ListView.TopItem
设置为最后一项,并确保滚动条位于底部:
listView1.TopItem = listView1.Items[listView1.Items.Count-1];
你应该确定你的listView1
至少有一个项目,这是一个更安全的LINQ版本:
listView1.TopItem = listView1.Items.Cast<ListViewItem>().LastOrDefault();
如果您想要按照每个项目从上到下滚动,请尝试以下操作:
int lastIndex;
private void timer1_Tick(object sender, EventArgs e)
{
this.Refresh();
int i = listView1.TopItem == null ? -1 : listView1.TopItem.Index;
if(i>-1) {
if(i == lastIndex || i == listView1.Items.Count - 2) i = 0;
lastIndex = i;
listView1.TopItem = listView1.Items[++i];
}
}
答案 1 :(得分:2)
添加项目后:
listView.EnsureVisible(listView.Items.Count - 1);