C # Стрелка вверх вниз для следующего / предыдущего в списке строк / коллекции - PullRequest
1 голос
/ 18 ноября 2011

Я немного запутался здесь:

Приложение Windows Forms, на C #.

Допустим, у меня есть текстовое поле. И когда пользователь вводит текст в это текстовое поле и отправляет его на сервер, он заполняет то, что пользователь написал, во внутренний List<string>.

Теперь, допустим, что когда пользователь нажимает на клавиатуре, например, ctrl + UP, я хочу, чтобы он возвращал последнее набранное сообщение (которое по сути является последним сообщением, добавленным в коллекцию List<string>.

И если пользователь нажимает ctrl + Down на клавиатуре, он должен вернуть предыдущее сообщение, которое произошло до того, как была нажата последняя up.

Но, как ни странно, я совершенно не понимаю, как это реализовать. LOL Я знаю, что это очень просто, но странно, я не могу понять это.

inputPublicHistory[inputPublicHistory.Count - 1]

Похоже на логический метод, чтобы вытащить предыдущую историю, например, когда я нажимаю «вверх». Но, очевидно, без метода, позволяющего отслеживать, где находится этот индекс, трудно сравнивать.

inputPublicHistoryIndex +=1

Я мог бы добавить, что после того, как пользователь нажимает Ctrl + Up на клавиатуре, чтобы увеличить индекс и просто вернуть этот результат, но действительно ли это правильный / правильный способ сделать это?

Может быть, я просто обдумываю это, возможно, один из вас, замечательные люди, мог бы помочь мне разобраться с такой простой задачей.

1 Ответ

2 голосов
/ 18 ноября 2011

Я бы сделал в значительной степени то, что вы обрисовали в общих чертах, кроме тех случаев, когда вы сохраняете последний ввод пользователя, установите отслеживание индекса, где они находятся .Count - 1. Если они нажимают CTRL + Up и индекс равен .Count - 1,показать им последний элемент в списке.Если они затем нажимают CTRL + Вниз, уменьшают индекс и показывают им этот элемент, но не (очевидно) не опускаются ниже 0.

...