FolderBrowserDialog带有输入字段

9
我不确定如何通过搜索来解释我想做的事情,因此我会在这里尝试: 我在代码中使用OpenFileDialogFolderBrowserDialog浏览文件和目录。
当对话框打开时,用户只能浏览文件/目录树。但是,在具有许多目录和子目录的树上,用户还希望手动显式写入(或粘贴)完整路径。
我该如何在代码中实现它?
以下是使用对话框的两个函数: 使用FolderBrowserDialog:
    private void buttonAddDirectory_Click(object sender, EventArgs e)
    {
        this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
        folderBrowserDialog.SelectedPath = "C:\\";

        if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
        {
            string selectedPath = folderBrowserDialog.SelectedPath;

            if (!searchForFiles(selectedPath))
            {
                MessageBox.Show("The directory: " + selectedPath + " doesn't contain sequences.", "Error!");
                return;
            }

            testForm.enableNumOfProcesses();
            createNewCommand(runBatchScript, selectedPath, true);
        }
    }

使用OpenFileDialog:

    private void buttonAddFile_Click(object sender, EventArgs e)
    {
        this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
        openFileDialog.InitialDirectory = "C:\\";
        openFileDialog.Filter = "PMD files (*" + sequenceExtenssion + ")|*" + sequenceExtenssion + "|All files (*.*)|*.*";
        if (openFileDialog.ShowDialog() == DialogResult.OK)
        {
            string selectedFile = openFileDialog.FileName;
            if (Path.GetExtension(selectedFile).CompareTo(sequenceExtenssion) != 0)
            {
                MessageBox.Show("The file: " + selectedFile + " is not a sequence file.", "Error!");
                return;
            }
            createNewCommand(batchRunExe, selectedFile, false);
        }
    }

你完全没有必要把那么多代码都加进去,只是为了问如何在文件夹浏览对话框中添加一个输入字段。你的问题最多只需要两行代码:FolderBrowserDialog fbd = new FolderBrowserDialog();fbd.ShowDialog(); 你可以说你已经做到了,展示这两行代码,并说明你想要一个输入字段。 - barlop
1个回答

0

根据用户使用的操作系统,这个过程有所不同:

  1. Windows 7、Vista、XP等 - 您可以直接在“文件名”输入框中键入元命令(如D:),然后该元命令将被执行。或者您可以将路径放入顶部的框中(需要单击它以从导航视图切换到输入视图)。

  2. 如果您正在使用Mono和其他一些GUI标准对话框可能根本不提供此功能,因此您必须自己实现这些对话框。


好的,我忘记了 OpenFileDialog 有这个选项 - 但它只选择文件。我希望也能选择一个目录,而 OpenFileDialog 不支持这样做。我正在使用 Windows 7。 - Idanis
如何使用FolderBrowserDialog来实现这个功能? - Idanis
1
@Idanis,我认为没有办法向FolderBrowserDialog(我最初回答中的第二种情况)添加此功能,但是如果你需要这个功能,就没有理由局限于FolderBrowserDialog - 例如,可以参考这个问题。 - Aleksei Poliakov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接