Обновление списка - PullRequest
       10

Обновление списка

1 голос
/ 19 апреля 2010

У меня есть ListBox постоянного размера 4

Я могу добавить число ListBoxItems, когда размер превышает 4, я включил полосу прокрутки,

Проблема: когда включена прокрутка (более 4 элементов), при каждом удалении последнего элемента вместо удаленного элемента появляется белое пятно.

Патч сходит только тогда, когда я касаюсь полосы прокрутки.

Я пробовал ListBox.Invalidate (), но безрезультатно

Ответы [ 2 ]

2 голосов
/ 19 апреля 2010

Дополнительно: это происходит, только когда последний элемент выбран, когда он удален.

Решение: явно установите новый выбор, и для последнего элемента сделайте прокрутку списка первой:

        int selected = listBox1.SelectedIndex;        
        if (selected >= 0)
        {
            listBox1.Items.RemoveAt(selected);
            if (selected == listBox1.Items.Count)
                listBox1.SelectedIndex = 0;

            listBox1.SelectedIndex = selected - 1;
        }
0 голосов
/ 19 апреля 2010

Какой ваш «удалить» код удалить из списка? Если вы используете что-то вроде этого:

listBox.Items[3] = null;

... тогда в списке еще 4 элемента, только 4-й является нулевым. Вам действительно нужно удалить предмет:

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