예제 #1
0
 HResult IShellBrowser.BrowseObject(IntPtr pidl, SBSP wFlags)
 {
     if ((wFlags & SBSP.SBSP_RELATIVE) != 0)
     {
         // ReSharper disable once UnusedVariable
         var shellItem = new ShellItem(MShellView.CurrentFolder, pidl);
     }
     else if ((wFlags & SBSP.SBSP_PARENT) != 0)
     {
         MShellView.NavigateParent();
     }
     else if ((wFlags & SBSP.SBSP_NAVIGATEBACK) != 0)
     {
         MShellView.NavigateBack();
     }
     else if ((wFlags & SBSP.SBSP_NAVIGATEFORWARD) != 0)
     {
         MShellView.NavigateForward();
     }
     else
     {
         MShellView.Navigate(new ShellItem(ShellItem.Desktop, pidl));
     }
     return(HResult.S_OK);
 }
예제 #2
0
        private bool Open(string path)
        {
            var result = false;

            if (File.Exists(path))
            {
                FileNameEntered?.Invoke(this, EventArgs.Empty);
                result = true;
            }
            else if (Directory.Exists(path))
            {
                if (_mShellView != null)
                {
                    _mShellView.Navigate(path);
                    Text   = string.Empty;
                    result = true;
                }
            }
            else
            {
                OpenParentOf(path);
                Text = Path.GetFileName(path);
            }

            if (_mShellView != null && !Path.IsPathRooted(path) && _mShellView.CurrentFolder.IsFileSystem)
            {
                result = Open(Path.Combine(_mShellView.CurrentFolder.FileSystemPath,
                                           path));
            }

            return(result);
        }
예제 #3
0
 private void button_Click(object sender, EventArgs e)
 {
     if (ShellView != null)
     {
         var folder = (ShellItem)((ToolStripButton)sender).Tag;
         ShellView.Navigate(folder);
     }
 }
예제 #4
0
        private void OpenParentOf(string path)
        {
            var parent = Path.GetDirectoryName(path);

            if (!string.IsNullOrEmpty(parent) &&
                Directory.Exists(parent))
            {
                _mShellView?.Navigate(parent);
            }
        }