如果对话框中单击了Make new folder,只需开始编辑名称即可创建一个文件夹并单击OK,确定对话框返回,但在属性SelectedPath中他会将该文件夹命名为New folder,然后就会有默认名称
之所以会发生这种情况,是因为当我们创建时,只需编辑并单击OK,此属性不会更新,方法ShowDialog ()将返回。
如何解决这个问题?
谢谢!
发布于 2015-02-03 15:32:00
我也遇到了同样的问题--如果你用FolderBrowseDialog创建了一个新文件夹,.SelectedPath会显示"xxx\NewFolder“,而不是用户给出的任何新名称。
在显示对话框之前,一旦我显式地给出了命令,问题就消失了。
MyFolderBrowser.ShowNewFolderButton =真
发布于 2011-07-11 17:21:49
我没能模拟出你描述的问题,我已经测试过了:
创建一个新的Form Form1,将button1添加到其中,并在button1.Click处理程序中复制以下代码:
private void button1_Click(object sender, EventArgs e)
{
using (FolderBrowserDialog dialog = new FolderBrowserDialog())
{
dialog.ShowNewFolderButton = true;
if (dialog.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
string path = dialog.SelectedPath;
Console.WriteLine(path);//will not print new folder if the file renamed.
}
}
}它可以通过创建一个新文件夹并按两次enter键来达到预期的效果。或者创建一个新文件夹,然后单击“确定”。您是否正在使用第三方UI控件...
编辑:您声明的:
是,如果此示例在windows应用程序中运行,它将正常工作。但我的应用程序是Excel外接程序。和我在started post上写的FolderBrowserDialog工作
因此,在使用带有FolderBrowserDialog或OpenFileDialog的第三方时,您正在使用第三方"Excel add-in“。您可能会注意到依赖于第三方的奇怪行为。
您所描述的问题的解决方案是禁用ShowNewFolderButton或实现您自己的自定义OpenFileDialog。
https://stackoverflow.com/questions/6647761
复制相似问题