public void FilterAliasTree(TreeView treeView, string searchTerm)
{
treeView.BeginUpdate(); // blocks repainting tree till all objects loaded
// filter
treeView.Nodes.Clear();
List<TreeNode> filteredNodes = new List<TreeNode>();
foreach (Module module in mModules.Values)
{
TreeNode node = module.FilterAliasTree(searchTerm);
if (node != null)
{
filteredNodes.Add(node);
}
}
treeView.Nodes.AddRange(filteredNodes.ToArray());
// enables redrawing tree after all objects have been added
treeView.EndUpdate();
}