Диалог открытия файла .NET

Возможный дубликат:
C # OpenFileDialog Немодальный возможен

Я работаю над проектом Windows Form на C #. Пока открыто диалоговое окно с файлом, я не могу выбрать что-либо вокруг него в графическом интерфейсе. Есть ли способ открыть диалоговое окно openfile и по-прежнему иметь возможность выбирать другие элементы управления в основном интерфейсе?


person Community    schedule 23.07.2009    source источник
comment
Точный дубликат этого вопроса: stackoverflow.com/questions/478476 /   -  person Reed Copsey    schedule 23.07.2009
comment
Я смог найти безопасный и приемлемый ответ на вопрос, на который указывает этот. Надеюсь, это сработает для того, что вам нужно.   -  person Joshua    schedule 24.07.2009


Ответы (3)


Это невозможно сделать с помощью стандартного OpenFileDialog. Вам нужно будет создать свой собственный, используя форму вместо FileDialog в качестве базового класса. Это позволит вам разработать свою собственную версию, которая была бы немодальной.

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

person Reed Copsey    schedule 23.07.2009

Общие диалоги - это модальные диалоги, которые по определению не позволяют взаимодействовать с каким-либо другим окном в процессе, пока они активны. Итак, ответ на ваш вопрос - нет, нет никакого способа сделать это. Вам нужно будет развернуть свой собственный диалог, используя сторонние или самостоятельно созданные элементы управления для взаимодействия с файловой системой - нетривиальная задача.

person Michael A. McCloskey    schedule 23.07.2009

dban,

Класс OpenFileDialog не поддерживает метод Show, который открывает форму в немодальном состоянии, то есть не блокирует родительский элемент.

Насколько я знаю, единственный способ открыть диалоговое окно файла - это такой, и он модальный. Метод ShowDialog открывает формы как модальные.

OpenFileDialog dlg = новый OpenFileDialog (); dlg.ShowDialog ();

Вы можете написать свой собственный класс диалога открытия файла, если хотите, чтобы он открывался немодально.

Но вы также должны подумать, действительно ли это необходимо или нет. Обычно, когда пользователю предоставляется диалоговое окно открытия файла, это происходит потому, что приложению нужен файл. В это время пользователю больше нечего делать с приложением.

person Paul Sasik    schedule 23.07.2009