private void FindItem(IListItemEx item) {
var nodeNext = this.ShellTreeView.Nodes.OfType<TreeNode>().FirstOrDefault(s => s.Tag != null && (s.Tag as IListItemEx).Equals(item));
if (nodeNext == null) {
parents.Push(item);
if (item.Parent != null) {
this.FindItem(item.Parent.Clone());
}
} else {
while (parents.Count > 0) {
var obj = parents.Pop();
this.BeginInvoke((Action)(() => {
var newNode = this.FromItem(obj);
if (newNode != null && !newNode.IsExpanded) {
newNode.Expand();
}
}));
}
}
}