带有输入字段的FolderBrowserDialog
本文关键字:FolderBrowserDialog 字段 输入 | 更新日期: 2023-09-27 17:57:33
我不确定在这里搜索什么来解释我想做什么,所以我会在这里尝试:我在代码中同时使用OpenFileDialog
和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);
}
}
根据用户使用的操作系统,这是不同的:
-
Windows 7、Vista、XP等-您只需在
File name
输入中键入元命令(如D:
),就会执行此元命令。或者你可以把你的路径放在顶部的框中(需要点击它从导航视图切换到输入视图) -
如果您正在使用Mono和其他一些GUI标准对话框,则可能根本无法提供此功能,因此您必须自己实现这些对话框。