public void FindFileOnClick(object sender, EventArgs e)
{
string selectedItem;
using (var searchWindow = new SearchWindow<string>(FindFileMatches)
{
Owner = this
})
{
searchWindow.ShowDialog(this);
selectedItem = searchWindow.SelectedItem;
}
if (string.IsNullOrEmpty(selectedItem))
{
return;
}
string[] items = selectedItem.Split(new[] { '/' });
TreeNodeCollection nodes = GitTree.Nodes;
for (int i = 0; i < items.Length - 1; i++)
{
TreeNode selectedNode = Find(nodes, items[i]);
if (selectedNode == null)
{
return; //Item does not exist in the tree
}
selectedNode.Expand();
nodes = selectedNode.Nodes;
}
var lastItem = Find(nodes, items[items.Length - 1]);
if (lastItem != null)
{
GitTree.SelectedNode = lastItem;
}
}