Вы можете использовать LinkList<T>
для симуляции этого. Я полагаю, что вы можете использовать тот же лог c в ваших 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 Output