folderBrowserDialog не работает в C #

когда я нажимаю кнопку, чтобы выбрать папку с помощью folderBrowserDialog в C #, диалоговое окно не отображается, а результат диалогового окна автоматически устанавливается на Отмена .. вот код, стоящий за Button_Click:

private void glassButton1_Click(object sender, EventArgs e)
{
    DialogResult result = folderBrowserDialog1.ShowDialog();//here Dialog is not shown and result=Cancel
    if (result==DialogResult.OK)
    {
        folderBrowserDialog1.ShowNewFolderButton = true;
        backupPath = folderBrowserDialog1.SelectedPath.ToString();
        if (Directory.Exists(backupPath))
            backupTextBox.Text = backupPath;
        //else MessageBox.Show("path is invalid", "error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
    }
}

как я могу это исправить? благодаря .


person ako    schedule 20.08.2016    source источник
comment
Это перетаскивание? Или вы сами создали folderBrowserDialog?   -  person Berkay    schedule 20.08.2016
comment
Где создан код, создавший folderBrowserDialog1   -  person Matthew Whited    schedule 20.08.2016
comment
и fyi, строка folderBrowserDialog1.ShowNewFolderButton = true; устанавливается после закрытия диалогового окна.   -  person Matthew Whited    schedule 20.08.2016
comment
@MatthewWhited я поместил элемент управления в форму из панели инструментов   -  person ako    schedule 20.08.2016


Ответы (3)


Вот код, у меня он отлично работает.

using (var dialog = new FolderBrowserDialog())
    if (dialog.ShowDialog() == DialogResult.OK)
    {
         // some code...
    }
person Sleepy Panda    schedule 20.08.2016

Ваш код работает правильно. результатом будет DialogResult.OK, когда вы нажмете FolderBrowserDialog «Кнопка OK». если вы нажмете кнопку «отменить» или «закрыть», когда значение результата - DialogResult.Cancel

person Valeh Mikayilzadeh    schedule 20.08.2016

в свойствах проекта -> раздел сборки -> целевая платформа я установил флажок Предпочитать 32-разрядный, и это решило мою проблему.

person ako    schedule 20.08.2016
comment
Я думаю, что проблема каким-то образом связана с компонентами COM, поскольку folderBrowserDialog является компонентом технологии COM, но я не знаю, в чем проблема. - person ako; 20.08.2016