使用选择文件的窗口样式选择文件夹

零、需求

传统的选择文件夹的方式太小了,不好操作,不过选择文件的方式倒是挺不错的,能不能把选择文件夹的方式改为选择文件这种样式呢?

  • 选择文件夹

  • 选择文件

壹、解决

1. 通过 WindowsAPICodePack 解决

安装

在VS中选择 “工具” -> “NuGet 包管理器” -> “程序包管理器控制台” 输入如下命令安装 WindowsAPICodePack 1.1.2 。

NuGet\Install-Package WindowsAPICodePack -Version 1.1.2

或者通过以下链接下载:

https://www.nuget.org/api/v2/package/WindowsAPICodePack/1.1.2

或者下载我上传到博客园的资源:

Winform选择文件夹对话框插件.7z

下载好后安装好即可。

使用

var commonOpenFileDialog = new CommonOpenFileDialog
{
IsFolderPicker = true, //设置为true为选择文件夹,设置为false为选择文件
Title = "选择文件夹",
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
}; var result = commonOpenFileDialog.ShowDialog();
if (result == CommonFileDialogResult.Ok)
{
string str = commonOpenFileDialog.FileName;
MessageBox.Show(str);
}

效果

2. 通过Ookii解决

安装

在VS中选择 “工具” -> “NuGet 包管理器” -> “程序包管理器控制台” 输入如下命令安装 Ookii.Dialogs.WinForms 1.0.0 (.Net版本需要4.5及以上)。

NuGet\Install-Package Ookii.Dialogs.WinForms -Version 1.0.0

或者通过以下链接下载:

https://www.nuget.org/api/v2/package/Ookii.Dialogs.WinForms/1.0.0

或者下载我上传到博客园的资源:

Winform选择文件夹对话框插件.7z

下载好后安装好即可。

使用

var folderDialog = new Ookii.Dialogs.WinForms.VistaFolderBrowserDialog
{
Description = "选择文件夹"
}; if (folderDialog.ShowDialog() == DialogResult.OK)
{
MessageBox.Show(folderDialog.SelectedPath);
}

效果

贰、参考资料

http://blog.baibaota.com/2062.html

http://www.ookii.org/software/dialogs/

https://blog.csdn.net/xieehu/article/details/125521885

【WinForm】使用选择文件的窗口样式选择文件夹的更多相关文章

  1. html5文件读取+按钮样式重置+文件内容预览

    FileReader读取文件详细介绍请访问:http://www.cnblogs.com/xyyt/p/9066882.html FileReader提供了如下方法: readAsArrayBuffe ...

  2. DotNetBar怎样控制窗口样式

    DotNetBar怎样控制窗口样式 老帅  在C#中使用控件DevComponents.DotNetBar时,怎样创建一个美丽的窗口.并控制窗口样式呢? 1.新建一个DotNetBar窗口       ...

  3. 基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作

    在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图标,从而是Web系统界面看起来更加美观和协调.但是在系统中一般内置的图标样式相对比较有限,而且硬编码写到样式表里面,这 ...

  4. 打开窗口进行选择文件(txt文件),打开所选文件,读入文件

    用mfc编写项目的时候往往需要调用窗口,允许用户通过窗口进行选择文件操作 TCHAR szBuffer[MAX_PATH] = { 0 }; OPENFILENAME ofn = { 0 }; ofn ...

  5. C# winform文件批量转编码 选择文件夹

    C# winform文件批量转编码 选择文件夹 打开指定目录 private void btnFile_Click(object sender, EventArgs e) { OpenFileDial ...

  6. ng-file-upload(在单文件选择,并且通过点击“上传”按钮上传文件的情况下,如何在真正选择文件之前保留上一文件信息?)

    文章前面研究ng-file-upload可能涉及指令: You can use ng-model or ngf-change instead of specifying function for ng ...

  7. Swift基础之两种选择星星的评价样式并获取星星的索引值

    想练练手,所以封装了一个两种选择星星的评价样式的Demo,并且可以获取到点击的星星的索引值,方便记录值,上传数据时使用 首先创建View类,设计初始化方法,并且用到了枚举类型和代理方法 方式一:默认的 ...

  8. LODOP选择路径,保存写入word文件

    之前的博文介绍了lodop和c-lodop如果使用 LODOP.GET_DIALOG_VALUE弹出对话框,让用户选择路径,例如保存文件的路径,这样用户就不用手动输入想要的路径. 这一篇,是利用上一篇 ...

  9. tcl/tk 调用选择路径的窗口

    tk_chooseDirectory -title "选择工作空间" -initialdir "D:\\" -title 指定打开后显示的title -init ...

  10. C#选择多个文件并读取多个文件数据

    原文:C#选择多个文件并读取多个文件数据 版权声明:本文为博主原创文章,转载请附上链接地址. https://blog.csdn.net/ld15102891672/article/details/8 ...

随机推荐

  1. manim边做边学--动画组合

    动画组合类的作用是将多个动画组合起来,以实现更复杂的动画效果. Manim中有4个用于动画组合的类: AnimationGroup:将多个动画组合在一起同时播放,能一次性呈现多个对象的不同变化 Lag ...

  2. 一种调试 线段树 / Treap / Splay / 左偏树 / LCT 等树形结构的技巧

    前言 如果我们需要观察程序运行过程中,某一个变量.某一个序列的变化情况,你可以在修改的地方打断点 debug,或者直接在需要的地方输出就行了. 但是对于一些树形结构,我们不好将其直观地呈现出来,常常只 ...

  3. CDS标准视图:测量点数据 I_MeasuringPointData

    视图名称:测量点数据 I_MeasuringPointData 视图类型:基础视图 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'IMEASPOINTDATA' @A ...

  4. c# Polygon 画多边形,

    //随机多边形:using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  5. Elasticsearch(4)--- 基本概念(Index、Type、Document、集群、节点、分片及副本、倒排索引)

    这篇博客讲到基本概念包括: Index.Type.Document.集群,节点,分片及副本,倒排索引. 一.Index.Type.Document 1.Index index:索引是文档(Docume ...

  6. linux:shell

    关于shell 什么是shell? shell,是用c编写的,既是命令语言,也是一种程序设计语言 shell指一种应用程序,该程序提供一个界面,用户可通过该界面访问操作系统 什么是脚本? 脚本是一条文 ...

  7. Kevin pg walkthrough Easy

    第二个window 靶机 尝试访问 80 web界面 然后是个登录界面 我尝试admin admin 登录成功 发现版本 发现了exp https://www.exploit-db.com/explo ...

  8. LOJ题目选做

    你妈,机房断电写了一大堆没了 题目大概是 https://vjudge.net/contest/633974 里我做的题 和joisc2014的题

  9. ORACLE存储过程中使用游标+BULK COLLECT的应用

    经过半天的折腾,编译通过调试结果正确,掌握此过程中的知识点,oracle存储过程编写就应用到了90%. CREATE OR REPLACE PROCEDURE JUNAN.P_IPT_QUOTN_IN ...

  10. 服务器主机:复杂理论的视角与SEO策略

    本文分享自天翼云开发者社区<服务器主机:复杂理论的视角与SEO策略>,作者:不知不觉 在数字世界的演变中,服务器主机在信息存储和数据处理方面发挥着核心作用.本文将带你重新认识服务器主机的价 ...