.net中有没有打开目录的对话框 you can also use SHBrowseForFolder API 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 您还是可以使用OpenFileDialog,参数请赋目录的Path。谢谢! 用Directory.GetLogicalDrives();得到所有本地的磁盘用Directory.GetDirectories(path);得到path路径下的所有子目录 感谢您使用微软产品。目前,.NET Framework没有直接提供打开目录(文件夹)对话框。不过,您可以按照如下的步骤,在VC#中实现自定义目录(文件夹)对话框(Folder Dialog),然后可以在VC#和VB.NET中调用:1,首先建立一个FolderDialog的类文件,并将其编译成为dll文件,以便其他应用程序调用:具体过程如下:(1)新建一个Window Application应用程序(注:在调试通过后,可改为Class Library输出),右击ToolBox,选择Customize ToolBox……,在弹出的Customize ToolBox对话框中,选择“.Net Framework Component”,最后在列表中选中DriveListBox, DirListBox 和 FileListBox等复选框;(2)添加DriveListBox, DirListBox 和 FileListBox到Form窗体上,并编写如下代码(只列出一些主要的代码,供参考):using ……;namespace CustomerFolderDialog{ public class FolderDialog : System.Windows.Forms.Form { public string Path { get { return dirListBox1.Path; } } private string tempDrive;…… public FolderDialog() { InitializeComponent(); tempDrive = this.driveListBox1.Drive; }…… private void driveListBox1_SelectedIndexChanged(object sender, System.EventArgs e) { try { this.dirListBox1.Path = this.driveListBox1.Drive; tempDrive = this.driveListBox1.Drive; } catch(Exception ex) { MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error); driveListBox1.Drive = tempDrive; } } private void Form1_Load(object sender, System.EventArgs e) { this.label1.Text = dirListBox1.Path; } private void dirListBox1_Change(object sender, System.EventArgs e) { try { this.fileListBox1.Path = this.dirListBox1.Path; this.label1.Text = dirListBox1.Path; } catch(Exception ex) { MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error); } } }}(3),在调试通过后,在Form窗体上添加两个Button,并分别设置DialogResult属性为:OK或Cancel,分别设置其Text属性为OK或Cancel。同时,在应用程序的属性对话框 (Project/Properties) 中将其Output Type改为Class Library,编译输出dll文件。2,另外新建一个C#的应用程序,添加对上述dll文件的引用(Add Reference)。下面提供一段示例程序,完成整个调用过程:……using CustomerFolderDialog;……private void button1_Click(object sender, System.EventArgs e){ FolderDialog folderDialog = new FolderDialog(); if(folderDialog.ShowDialog() == DialogResult.OK) { textBox1.Text = folderDialog.Path; }}希望这些对您有帮助,如果有问题,请继续讨论! — 微软全球技术中心 VB支持中心本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。 如何清空数组 c#可以创建一个窗口类名叫AAA的窗口吗 EXCEL导入SQL的问题. 为何在Winform MDI窗口里用VB写得OCX会出现:不能在该主机应用程序中从ActiveDll控件显示非模式窗体-100分 怎样去除掉的标题栏 在C#里如何监视注册表变化? datatimepicker控件如何既选择日期也选择时间 关于水晶报表(Crystal Reports)使用ado.net数据集的若干问题(高手请进) 加急!!!怎麽寫一個字自動配置IIS的程序 如何实现字符串转二进制? 谁能解释特性ATTRIB[]的含义、用法 ASA.net快速入门里的示例不能运行,请高手解决!送100分!
1,首先建立一个FolderDialog的类文件,并将其编译成为dll文件,以便其他应用程序调用:
具体过程如下:
(1)新建一个Window Application应用程序(注:在调试通过后,可改为Class Library输出),右击ToolBox,选择Customize ToolBox……,在弹出的Customize ToolBox对话框中,选择“.Net Framework Component”,最后在列表中选中DriveListBox, DirListBox 和 FileListBox等复选框;
(2)添加DriveListBox, DirListBox 和 FileListBox到Form窗体上,并编写如下代码(只列出一些主要的代码,供参考):
using ……;
namespace CustomerFolderDialog
{
public class FolderDialog : System.Windows.Forms.Form
{
public string Path
{
get { return dirListBox1.Path; }
}
private string tempDrive;
……
public FolderDialog()
{
InitializeComponent();
tempDrive = this.driveListBox1.Drive;
}
……
private void driveListBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
try
{
this.dirListBox1.Path = this.driveListBox1.Drive;
tempDrive = this.driveListBox1.Drive;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
driveListBox1.Drive = tempDrive;
}
} private void Form1_Load(object sender, System.EventArgs e)
{
this.label1.Text = dirListBox1.Path;
} private void dirListBox1_Change(object sender, System.EventArgs e)
{
try
{
this.fileListBox1.Path = this.dirListBox1.Path;
this.label1.Text = dirListBox1.Path;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}
}
(3),在调试通过后,在Form窗体上添加两个Button,并分别设置DialogResult属性为:OK或Cancel,分别设置其Text属性为OK或Cancel。同时,在应用程序的属性对话框 (Project/Properties) 中将其Output Type改为Class Library,编译输出dll文件。2,另外新建一个C#的应用程序,添加对上述dll文件的引用(Add Reference)。
下面提供一段示例程序,完成整个调用过程:
……
using CustomerFolderDialog;
……
private void button1_Click(object sender, System.EventArgs e)
{
FolderDialog folderDialog = new FolderDialog();
if(folderDialog.ShowDialog() == DialogResult.OK)
{
textBox1.Text = folderDialog.Path;
}
}
希望这些对您有帮助,如果有问题,请继续讨论! — 微软全球技术中心 VB支持中心本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。