C# не работает Folder Browser Dialog [cefsharp - winforms]

Не отображается окно выбора папки. При нажатии на кнопку из JavaScript в C# отправляю строку "folder" и выполняю следующий код:

    case "folder":

                foreach (Form f in Application.OpenForms)
                {
                    if (f.GetType() == typeof(window))
                    {
                        window fTemp = (window)f;
                        fTemp.GetFolderPath();
                    }
                }

                break;

Функция GetFolderPath в классе формы:

    public string GetFolderPath()
    {
        FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
        
        if (folderBrowser.ShowDialog() == DialogResult.OK)
            return folderBrowser.SelectedPath;
        
        return "";
    }

Как мне отобразить окно выбора папки корректно? Вызывать данный код целиком из класса с получением ответов из JavaScript пробовал, результат тот же.


Ответы (1 шт):

Автор решения: aepot

Попробуйте открытие диалога перенаправить UI поток.

public string GetFolderPath()
{
    FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
    DialogResult result = DialogResult.Cancel;
    this.Invoke((Action)(() => result = folderBrowser.ShowDialog()));
    return result == DialogResult.OK ? folderBrowser.SelectedPath : "";
}
→ Ссылка