BExplorer.Shell.ShellTreeViewEx.ShellTreeView_AfterSelect C# (CSharp) Method

ShellTreeView_AfterSelect() private method

private ShellTreeView_AfterSelect ( object sender, TreeViewEventArgs e ) : void
sender object
e System.Windows.Forms.TreeViewEventArgs
return void
		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;
			}
		}