Я работаю с WinForms в .NET 2010. Я создал пользовательский элемент управления, который наследует Treeview, и я использую чертеж владельца для текстовой части моих treenodes..NET Treeview: Как предотвратить изменение старых дочерних узлов?
Теперь я должен был решить странную проблему производительности:
Когда текст TreeNode (я называю его «ParentNode») получает изменилось, управление TreeView пожаров DrawNode-событие для каждого из «parentnodes»» s дочерние узлы, независимо от того, видны они или нет!
Это вызывает большую проблему с производительностью для моего приложения. Как я могу предотвратить, чтобы элемент управления TreeView не запускал событие DrawNode для каждого дочернего узла?
Thx заблаговременно за помощь!
thx, это лучше. но по-прежнему занимает почти одну секунду, чтобы получить tv redrawn, в то время как моя форма не отвечает ... для перерисовки Я использую Backgroundworker, который вызывает метод делегата. в этом методе выполняются команды tv.beginupdate, treenode.text renaming и tv.endupdate. Как я могу ответить на свою форму, пока эти вещи выполняются? –
Ух, это жалко дорого, если вы делаете это для каждого узла. Обновляйте только в обработчике событий RunWorkerCompleted и используйте Begin/EndUpdate(). Или много из них в вызове ReportProgress. –
о, извините. Это делается только для того единственного узла, который я обновил –