2013-07-29 4 views
1

У меня проблема с мерцанием TreeView. Я хочу, чтобы первый узел был выбран после создания TreeView.Мигает TreeView после программно выбранного узла

tv.SelectedNode = tv.Nodes[0]; 

Этот набор, но и первым щелкните на любом узле в программе составляет TreeView мигать, и после этого все нормально, и после последующих щелчков ничего не мерцает. Я использую BeginUpdate и EndUpdate на MouseDown и MouseUp, и на самом деле это работает, но только после этого первого щелчка. Без программного выбора первого узла, который был выбран, он работает хорошо. Я понятия не имею, что делает TreeView blink.

Заранее благодарен! Приветствия.

+0

Скорее всего какой-то обработчик событий. двойная проверка всех хакеров событий – Swift

+0

Я не могу воспроизвести вашу проблему. В каком обработчике событий вы помещаете это 'tv.SelectedNode = tv.Nodes [0];'? –

+0

Когда я перехожу с одного экрана на другой (нажав «Далее»), я запускаю метод, который загружает DataSet из файла, а затем создает TreeView, где TreeNodes являются столбцами таблицы в этом наборе данных. В конце этого метода после создания TreeView и всех его узлов я установил выбранный узел. – soshman

ответ

0

Вы можете избежать мерцания с помощью TreeView потомка с двойной буферизацией живописи включен:

class DoubleBufferedTreeView : TreeView { 
    public MyTreeView() { 
     SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); 
    } 
} 
Смежные вопросы