private void ShellTreeView_AfterSelect(object sender, TreeViewEventArgs e) {
if (!this._AcceptSelection) {
this._AcceptSelection = true;
return;
}
//var sho = e.Node != null ? e.Node.Tag as IListItemEx : null;
var sho = e?.Node?.Tag as IListItemEx;
if (sho != null) {
IListItemEx linkSho = null;
if (sho.IsLink) {
try {
var shellLink = new ShellLink(sho.ParsingName);
var linkTarget = shellLink.TargetPIDL;
linkSho = FileSystemListItem.ToFileSystemItem(IntPtr.Zero, linkTarget);
shellLink.Dispose();
} catch { }
}
this.isFromTreeview = true;
if (this._IsNavigate) {
this.ShellListView.Navigate_Full(linkSho ?? sho, true, true);
}
this._IsNavigate = false;
this.isFromTreeview = false;
}
}