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/

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

  • 相关阅读:
    spark streaming 概述
    spark sql 的性能调优
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal (用中序和后序树遍历来建立二叉树)
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal (用先序和中序树遍历来建立二叉树)
    LeetCode 90. Subsets II (子集合之二)
    LeetCode 88. Merge Sorted Array(合并有序数组)
    LeetCode 81. Search in Rotated Sorted Array II(在旋转有序序列中搜索之二)
    LeetCode 80. Remove Duplicates from Sorted Array II (从有序序列里移除重复项之二)
    LeetCode 79. Word Search(单词搜索)
    LeetCode 78. Subsets(子集合)
  • 原文地址:https://www.cnblogs.com/singlex/p/2275030.html
Copyright © 2011-2022 走看看