2013-12-01 3 views
2

У меня есть VirtualTreeView, который имеет несколько столбцов изначально скрытых (coVisible нет).VirtualTreeview включение и отключение столбцов

После включения их (добавление coVisible к столбцу «Параметры») происходит странная вещь - столбец появляется, но перекрывается с предыдущим столбцом. Я могу исправить проблему, изменив ширину на 1 пиксель меньше, а затем вернемся к исходной ширине столбца, который заставляет некоторую перерисовку, которая затем корректно отображает столбец.

Есть ли что-то, что мне нужно сделать дополнительно, за исключением добавления coVisible, чтобы перерисовать столбцы правильно?

+2

Вы пробовали Header.Columns.BeginUpdate/EndUpdate? – kobik

+0

@kobik У меня его нет, и он сделал трюк! Спасибо! Пожалуйста, сделайте это в короткий ответ, чтобы я мог отметить его как правильно. – Coder12345

ответ

8

Использование:

VTV.Header.Columns.BeginUpdate; 
try 
    // Enable or Disable columns... 
finally 
    VTV.Header.Columns.EndUpdate; 
end; 

Это должно держать Header.Columns синхронно.

+0

Это звучит как ошибка –

+0

Хотя это работает, я обнаружил, что после использования параметра 'BeginUpdate' /' EndUpdate' 'VTV.Header.Columns [n] .Position' больше не будет работать (значение не изменяется после установки новой позиции '. Поскольку мне требуется установить позицию, вместо этого я вернусь к своему« трюку »установки ширины к нулю, а затем вернусь к требуемой ширине. – Coder12345