2009-11-25 4 views
0

У меня есть сбой в WinForms C# ListView (с настраиваемыми изменениями для сортировки и фильтрации по всем столбцам, но это произошло и в стандартном ListView).WinForms ListView пустые строки glitch

я изменить ListView товары с этим (довольно стандартный) модель:

BeginUpdate(); 
// add some items 
// remove some other items 
Sort(); 
EndUpdate(); 

Но если я называю этот код, когда ListView уже прокручивается, то я получаю пустые (не выбираемые) строки перед реальным пунктов и 2 прокрутки, даже если они не нужны.

Похоже на графический сбой, потому что, когда я просматриваю список, пустые предметы исчезают.

Неужели кто-нибудь встретил эту проблему раньше?

+0

Этот вид неясной проблемы требует, чтобы репродуцированный проект ограничивал возможные причины. Длинный снимок: EndUpdate() уже вызывает Sort(), опустите ваш вызов и посмотрите, не изменилось ли это. –

+0

Уже удален Сортировка(), без разницы. Я тестирую небольшой проект, и я не могу воспроизвести проблему, поэтому с моим кодом явно что-то не так, но я хотел проверить, знал ли кто-нибудь о таком сбое спасибо большое – Filini

ответ

1

Хорошо, я нашел проблему. Призыв установить столбец Ширина = -2 во время Resize возился с фильтрами-хозяинами ...

0

Эта графическая ошибка ListView. Аналогичную проблему можно воспроизвести, если при изменении размера ListView измените ширину столбцов. В качестве решения метод предлагает изменить ширину в отдельном потоке.

private void ListView_SizeChanged(object sender, EventArgs e) 
{ 
    var widthChangedThread = new Thread(() => SetNewColumnSize()) {IsBackground = true}; 
    widthChangedThread.Start();    
} 

private void SetNewColumnSize() 
{ 
    Invoke(new MethodInvoker(() =>_columnHeader.Width += 10)); 
} 
Смежные вопросы