Проблема с FolderBrowserDialog - PullRequest
3 голосов
/ 11 июля 2011

Если в диалоговом окне нажать «Создать новую папку», просто начните редактировать имя, просто создайте папку и нажмите «ОК», «ОК» возвращает диалоговое окно, но в свойстве SelectedPath он назовет папку «Новая папка», затем появится имяdefault

Это происходит потому, что когда мы создаем, просто редактируем и нажимаем OK, это свойство не обновляется, и возвращается метод ShowDialog ().

Как решить эту проблему?

Спасибо!

Ответы [ 2 ]

1 голос
/ 03 февраля 2015

У меня была та же проблема - если вы создали новую папку с FolderBrowseDialog, .SelectedPath показывал «xxx \ NewFolder», а не новое имя, которое дал пользователь.

Проблема исчезла, как только я дал команду перед отображением диалогового окна,

MyFolderBrowser.ShowNewFolderButton = True

0 голосов
/ 11 июля 2011

Мне не удалось смоделировать проблему, которую вы описываете, я проверил ее:

Создайте новый 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.
        }
    }
}

Это сработало, как и ожидалось, создав новую папку и дважды нажав клавишу ввода. или путем создания новой папки и нажмите кнопку ОК. Используете ли вы сторонние элементы управления пользовательским интерфейсом, theams ...

Редактировать: Вы указали:

Да, если этот пример запускается в приложении Windows, он работает правильно. Но мое приложение Excel надстройка. И FolderBrowserDialog работают, что я напиши в начало сообщения

Таким образом, вы используете стороннюю «надстройку Excel». При использовании третьей стороны с FolderBrowserDialog или OpenFileDialog .. вы можете заметить странное поведение в зависимости от третьей стороны.

Решением проблемы, которую вы описали, является отключение ShowNewFolderButton или реализация собственного пользовательского OpenFileDialog.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...