2015-04-28 4 views
0

Так что я недавно пытался к FolderBrowserDialog но к моему разочарованию он не был похож на следующий скриншот:Как сделать этот тип диалога выбора папки в C#?

http://i.imgur.com/s2LHqxA.png

Но вместо этого он был отформатирован, и как мне кажется, трудно ориентироваться с так: http://i.imgur.com/rfSnt8C.png

Как я могу получить другую версию, где это диалоговое окно с просьбой о том, какая папка будет сохранена, например, как тип файла выбора, а не то, что, по моему мнению, трудно перемещаться по меню.

+0

Вы используете winforms или wpf? –

+0

AFAIK 'FolderBrowserDialog' раньше напоминал второй снимок экрана. Если вы хотите что-то другое, вам нужно катиться самостоятельно. –

+0

Если честно, я понятия не имею, что я использую. Я очень новичок в этом, и это, вероятно, третий или четвертый раз, когда я запрограммирован на C# .... infact это первый раз, когда мне приходилось работать с invoke. – Codingale

ответ

1

то потому что вы используете FolderBrowserDialog вместо OpenFileDialog

вы можете проверить ниже

private void btnBrowse_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog fileDialog = new OpenFileDialog(); 
      fileDialog.Title = "Browse File"; 
      fileDialog.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
      fileDialog.FilterIndex = 2; 
      fileDialog.InitialDirectory = "c:\\"; 
      fileDialog.RestoreDirectory = true; 

      if (fileDialog.ShowDialog() == DialogResult.OK) 
      { 
       txtFileName.Text = fileDialog.FileName; 
      } 
     } 
+0

Кажется, что вы выбираете файл, а остальная часть вставляемого в него кода, похоже, повторно используется из файла '.txt', но изменена для всех файлов' *. * ' – Codingale

+0

, вы можете подстроить имя папки из него. требуемый интерфейс не предоставляется для выбора папки. Проверьте эту ссылку http://stackoverflow.com/questions/9227917/how-to-use-open-file-dialog-to-select-a-folder. –

+0

Что вы подразумеваете под повторным использованием из файла .txt, но сменили ??? –

5

В CommonOpenFileDialog класс от NuGet Пакет "Microsoft.WindowsAPICodePack-Шелл" ответит ваш запрос.

Недвижимость IsFolderPicker до true и все.

using Microsoft.WindowsAPICodePack.Dialogs;  

private bool SelectFolder(out string fileName) 
{ 
    CommonOpenFileDialog dialog = new CommonOpenFileDialog(); 
    dialog.IsFolderPicker = true; 
    if (dialog.ShowDialog() == CommonFileDialogResult.Ok) 
    { 
     fileName = dialog.FileName; 
     return true; 
    } 
    else 
    { 
     fileName = ""; 
     return false; 
    } 
} 
+0

'как выбранный тип файла изначально, но спасибо за ответ в любом случае, что, несомненно, поможет другим. Для этого требуется пакет NuGet и включение в проект вещей, а не собственный метод. – Codingale

Смежные вопросы