Как использовать OpenFileDialog в C # в Visual Studio 2010 - PullRequest
5 голосов
/ 07 мая 2010

Я написал собственный диалог (форму), который я могу использовать в программе на C #, который ведет себя подобно команде меню «Файл - Открыть» и вызывает окно, в котором пользователь может выбрать файл или каталог.

У меня вопрос такой. В качестве его корня используется «Мой компьютер». Как я могу получить его, чтобы он выполнял поиск в сети? Если файл или каталог находится в сети.

Или, что еще лучше, в Visual Studio 2010 есть какой-нибудь консервированный FileOpenDialog, который я могу использовать прямо сейчас?

Я попытался вызвать OpenFileDialog, как описано в примере кода на http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog.aspx но компилятору, похоже, не нравится DialogResult.OK, используемый в этой строке кода:

if(openFileDialog1.ShowDialog() == DialogResult.OK)

Компилятор говорит:

Ошибка 1 «System.Nullable» не содержит определения «OK», и метод расширения «OK», принимающий первый аргумент типа «System.Nullable», не может быть найден (отсутствует директива using или сборка ссылка?)

Я попытался использовать пространство имен Microsoft.Win32 вместо System.Windows.Forms, но ни одно из них не сработало. Они оба произвели эту ошибку.

Ответы [ 2 ]

9 голосов
/ 07 мая 2010

Похоже, вы пытаетесь использовать диалоговое окно WinForms (System.Windows.Forms).
Вот страница MSDN для диалоговых окон WPF из пространства имен Microsoft.Win32.

Выдержка:

Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.FileName = "Document"; // Default file name
dlg.DefaultExt = ".txt"; // Default file extension
dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension

// Show open file dialog box
bool? result = dlg.ShowDialog();
2 голосов
/ 07 мая 2010

EDIT: пропущен тег WPF. Виноват. Что сказал Хенк Холтерман?

Вы добавили пространство имен, о котором говорит пример: System.IO?

Возможно, я ошибаюсь, но, похоже, вы создали переменную с именем DialogResult типа System.Nullable

...