c # - быстрое обновление данных ListBox - PullRequest
1 голос
/ 14 февраля 2011

Я хочу отобразить в 20 строках некоторые текстовые данные. Каждая строка может быть длиннее, чем размер формы. В этом случае остальная часть строки должна быть обрезана.

Я не хочу иметь полосу прокрутки h или v.

Поскольку элемент управления ListBox может соответствовать моим требованиям, я попытался его использовать. Все работает нормально, но если у меня большая нагрузка на диск, может случиться так, что элемент управления начнет мерцать, и я не думаю, что это должно быть. Я обновляю данные раз в секунду, и у меня всегда меньше 20 строк текстовых данных. Кажется, я неправильно использую ListBox.

У меня есть возможность подготовить данные в другом потоке в виде строки или массива строк, но в каждом случае мне нужно обновить весь ListBox. Какой метод лучше всего подходит для заполнения ListBox данными? Могу ли я иметь два буфера, которые я могу переключить для использования с ListBox?

Надеюсь, что есть лучшее решение ...

Ответы [ 2 ]

2 голосов
/ 14 февраля 2011

Попробуйте вызвать SuspendLayout () для ListBox, прежде чем добавлять к нему данные, а затем вызвать ResumeLayout () для ListBox. Вы можете немного потерять это мерцание.

0 голосов
/ 14 февраля 2011

Вы можете создать привязку данных, а затем просто обновить привязку, которая должна работать лучше. Дешевый способ - изменить видимость списка и сделать его невидимым в начале и видимым в конце. Дешево, но должно работать. ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...