首页 > 解决方案 > 在 vb/c#.net 中创建一个连续的列表(像一个轮子)

问题描述

在 Windows 窗体应用程序中,我需要一个列表,该列表一次只显示一个列表项,但可以连续滚动。例如,如果我的列表项是:

A B C D

如果 D 是显示的项目并且我向下滚动,它会返回到 A。这将类似于命运轮(尽管这不是我使用它的目的)。我认为列表控件会有一个连续滚动选项,但我还没有找到。

我想模仿这个(只是数字,而不是实际的锁): 在此处输入图像描述

标签: c#vb.netwinformscontrols

解决方案


您可以使用 aLinkList<T>来模拟这一点。我相信你可以在你的 winforms 中使用相同的逻辑,这样每个事件都ScrollSown可以显示下一个项目

安慰

var linkList = new LinkedList<int>(new int[] { 1, 2, 3, 4 }.AsEnumerable());

var first = linkList.First;
LinkedListNode<int> current = first;

while (true)
{

   Console.WriteLine($"Current value {current.Value}, press enter to Go Gext");
   Console.ReadLine();
   current = current.Next ?? first;

}

控制台输出


WinForms

public LinkedList<object> linkList;
public LinkedListNode<object> current;
public LinkedListNode<object> first;

public Form1()
{
    InitializeComponent();

    linkList = new LinkedList<object>(new object[] { "A", "B", "C", "D" }.AsEnumerable());
    first = linkList.First;
    current = first;
    listBox1.Items.Add(current.Value);
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{

  current = current.Next ?? first;
  listBox1.Items.Add(current.Value);

}

WinForm 输出


推荐阅读