在c#中自动从上到下滚动listview

Luc*_*uan 2 c# listview visual-studio-2010 winforms

美好的一天,伙计们。

我目前正在创建某种广告应用程序。这是从上到下滚动的简单文本,并且会再次重复。我目前正在使用 listview 在 C# 中执行此操作。将在列表视图中显示的文本将来自数据库。我正在使用计时器自动刷新表单。问题是如何在每次加载表单时自动移动它或从上到下滚动它,并在每次完成时再次重复。

谢谢。

这是目前King King先生要求的代码。

 private void timer1_Tick(object sender, EventArgs e)
    {
        this.Refresh();
        listView1.TopItem = listView1.Items.Cast<ListViewItem>().LastOrDefault();
    }
Run Code Online (Sandbox Code Playgroud)

Kin*_*ing 5

您可以设置ListView.TopItem为最后一项,它应该确保滚动条位于底部:

listView1.TopItem = listView1.Items[listView1.Items.Count-1];
Run Code Online (Sandbox Code Playgroud)

您应该确保您listView1至少有 1 项,这是更安全的 LINQ 版本:

listView1.TopItem = listView1.Items.Cast<ListViewItem>().LastOrDefault();
Run Code Online (Sandbox Code Playgroud)

更新

如果您想按每个项目从上到下滚动,请尝试以下操作:

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];
    }
}
Run Code Online (Sandbox Code Playgroud)