Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, voiger, Вы писали:
V>>Есть следующая проблема.
V>>Пробема в том, что если делать такую группировку, клонируя узлы, добавляя их в группирующий узел, и удаляя из корня дерева, получается очень медленно.
_FR>_FR>TreeView.BeginUpdate();
_FR>try {
_FR> // Перестановки
_FR>} finally {
_FR> TreeView.EndUpdate();
_FR>}//try
_FR>
_FR>здесь
Спасибо, помогло

Думал, если TreeView.Visible == false, то BeginUpdate()/EndUpdate() и необязательно вызывать

. А получается вот что:
/*было*/
TreeNode.Remove() 3467 msec
TreeNode.Clone() 495 msec
/*стало*/
TreeNode.Remove() 2162 msec
TreeNode.Clone() 450 msec
Это на тестовом примере небольшого размера.
Но вопрос остаётся открытым. Clone()-то копирует полностью весь узел со всеми полями и потомками, а почему Remove() так долго работает — вообще загадка. Можно как-то TreeNode.Parent() поменять?