zoukankan      html  css  js  c++  java
  • C# WINFORM 编程中,选择**文件夹**而不是文件的方法

       我们选择文件可以用 OpenFileDialog,但是文件夹有两种方法。

    法一:

       用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能。下面来看看具体是怎么实现的。
     首先新建一个winform的项目,再新建一个类文件(File->AddNewItem->Class)。 因为FolderNameEditor是在System.Windows.Forms.Design命名空间下的,此命名空间位于动态链接库system.design.dll,所以我们要先在解决方案中添加新的引用(reference)System.Design。然后在代码中添加:
      using System.Windows.Forms.Design;
      接着,我们新建一个FolderDialog类,此类从FolderNameEditor类继承,在此类中新建一个FolderBrowser类的实例。DisplayDialog(string description)函数用于设置实例fDialog的属性,并且显示浏览文件夹对话框。为了取得文件夹的路径,设置一个Path属性,返回选取文件夹的路径。

       

    C#语言: FolderDialog
    01 using System;
    02 using System.Collections.Generic;
    03 using System.Linq;
    04 using System.Text;
    05 using System.Windows.Forms.Design;
    06 using System.Windows.Forms;
    07
    08 namespace lnk
    09 {
    10     class FolderDialog : FolderNameEditor
    11     {
    12         FolderBrowser fDialog = new FolderBrowser();
    13         public FolderDialog()
    14         {
    15         }
    16         public DialogResult DisplayDialog()
    17         {
    18             return DisplayDialog("确定你的文件夹路径!!");
    19         }
    20         public DialogResult DisplayDialog(string description)
    21         {
    22             fDialog.Description = description;
    23             return fDialog.ShowDialog();
    24         }
    25         public string Path
    26         {
    27             get
    28             {
    29                 return fDialog.DirectoryPath;
    30             }
    31         }
    32         ~FolderDialog()
    33         {
    34             fDialog.Dispose();
    35         }
    36
    37     }
    38 }

    法二:

    工具栏里面有一个FolderBrowserDialog控件,在winform中添加FolderBrowserDialog控件。然后在添加一个按钮。和一个label标签。

    双击按钮添加代码

    FolderBrowserDialog.ShowDialog();
    label1.Text = BrowserDialog.SelectedPath;

    然后运行!

    此时点击按钮。就会弹出对话框。提示用户选择文件夹。选好后确定。用户选的地址就显示在了label中了!

    参考代码:

    private void button1_Click(object sender, EventArgs e)

    {
                FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
                folderBrowserDialog1.Description = "请选择保存输出图件的文件夹";
                folderBrowserDialog1.ShowNewFolderButton = true;
                folderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal;
                DialogResult result = folderBrowserDialog1.ShowDialog();
                if (result == DialogResult.OK)
                {
                    string folderName = folderBrowserDialog1.SelectedPath;
                    if (folderName!="")
                    {
                        textBox1.Text = folderName;
                    }
                }

    }

    作者:VShawn

    出处:http://www.cnblogs.com/singlex/

    本文版权归作者所有,欢迎转载,但未经博客作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Opensource .NET and Mono REST Web Services framework.NET Community Content on InfoQ Servicestack
    动态软件框架开发模型图
    数据库镜像
    DDD:策略模式如何结合动态表达式
    CentOS下j2ee环境搭建
    C#代码段编辑/编译工具
    .NET平台下不借助Office实现Word、Powerpoint等文件的解析(完)
    .NET Attribute(特性)的作用与用法
    tornado开发输入输出,数据库操作,内置模板,综合示例
    基于事件的异步编程模式(EMP)
  • 原文地址:https://www.cnblogs.com/singlex/p/2275030.html
Copyright © 2011-2022 走看看