@fedor_dev

Как вызвать диалог открытия файлов?

С каких то недавних времен
private void button1_Click(object sender, EventArgs e)
        {
                 FileDialog.ShowDialog();
        }

Стал кидать исключения
Текущий поток должен быть задан как поток однопоточного контейнера (STA), чтобы вызовы OLE стали возможны.

Говорит поставить перед Main [STAThread], что у меня собственно и так есть.
Одну идентичную проблему решили делегатом и методом invoke
private delegate DialogResult ShowSaveFileDialogInvoker();
        private void button1_Click(object sender, EventArgs e)
        {
            ShowSaveFileDialogInvoker invoker = new ShowSaveFileDialogInvoker(FileDialog.ShowDialog);

            this.Invoke(invoker); // where this is a Form
        }

Однако у меня это проблему не решает и вылазит то же самое исключение
  • Вопрос задан
  • 823 просмотра
Пригласить эксперта
Ответы на вопрос 1
@denismaster
Попробуйте:
var fileDialog = new OpenFileDialog();
if(fileDialog.ShowDialog()==DialogResult.OK) { //code }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы