C# 如何在C中创建这种类型的“选择文件夹”对话框?
因此,我最近尝试使用该屏幕,但令我失望的是,它与以下屏幕截图不同: 但事实上,它是格式化的,正如我所想,很难像这样导航:C# 如何在C中创建这种类型的“选择文件夹”对话框?,c#,.net,visual-studio-2013,C#,.net,Visual Studio 2013,因此,我最近尝试使用该屏幕,但令我失望的是,它与以下屏幕截图不同: 但事实上,它是格式化的,正如我所想,很难像这样导航: 我该如何获得另一个版本,它是一个对话框,要求保存什么文件夹,而不是我认为很难导航的菜单。这是因为您使用的是FolderBrowserDialog而不是OpenFileDialog 您可以查看下面的 private void btnBrowse_Click(object sender, EventArgs e) { OpenFileD
我该如何获得另一个版本,它是一个对话框,要求保存什么文件夹,而不是我认为很难导航的菜单。这是因为您使用的是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;
}
}
NuGet软件包Microsoft.WindowsAPICodePack-Shell中的CommonOpenFileDialog类将响应您的请求
将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;
}
}
您使用的是winforms还是wpf?AFAIK FolderBrowser对话框过去只类似于第二个屏幕截图。如果你想要不同的东西,你必须自己动手。老实说,我不知道我在用什么。我对这个很陌生,这可能是我第三次或第四次用C编程。。。。事实上,这是我第一次使用invoke。请显示一些代码,因为您不应该使用invoke来获取OpenXXDialogC@BerndLindeOP不使用Invoke,所需的文件夹实际上是Vista样式的文件对话框,该对话框在.NET中不可用。事实上,使用本机调用是解决此问题的方法之一。这似乎是选择了一个文件,通过复制粘贴代码的其余部分,它似乎是从.txt文件中重新使用的,但对所有文件都进行了更改**您可以从中选择文件夹名称的子字符串。没有为文件夹选择提供所需的界面检查此链接。TXTFILNAME显示这可能是从代码中选择txt文件类型。我仍在进行研究,我可能会在windows中找到另一种方法来解决这个问题,因为我不想添加外部包。实际上TXTFILNAME是一个文本框控件,我只是在它们前面加上txt:。如果你找到了一种方法来完成你所需要的,请把它作为一个答案贴在这里。就像原始问题中的选择文件类型一样,但是无论如何,谢谢你的回答,这肯定会帮助其他人。这需要一个NuGet包,并将一个things包含到项目中,而不是本地方法。