private async void btnApply_Click(object sender, EventArgs e)
{
try
{
string filter = textBoxFilter.Text.Trim();
TreeNode[] nodes;
if (filter.Length > 0)
{
Func<TreeNode, bool> filterFunc = CreateFilter(filter, comboBoxMode.SelectedIndex, false);
nodes = await Task.Run(() => m_originalNodes.Where(n => FilterNode(n, filterFunc)).ToArray());
}
else
{
nodes = m_originalNodes;
}
treeComRegistry.SuspendLayout();
treeComRegistry.Nodes.Clear();
treeComRegistry.Nodes.AddRange(nodes);
treeComRegistry.ResumeLayout();
}
catch(Exception ex)
{
MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}