程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#實現同一個對話框打開目錄和文件

C#實現同一個對話框打開目錄和文件

編輯:C#入門知識

本文中的代碼,演示了一種是用FileOpenDialog控件(在.NET 2.0以上版本中可用)來從同樣的一個對話框中選擇打開文件或者目錄。

背景
在我的開源工程裡,我一直在尋找能夠讓用戶從同一個對話框裡面選擇文件或目錄的控件。搜索過網絡之後,我了解到了一些解決方案(一個是使用非托管代碼,一個是使用自定義控件)。不幸的是,這兩個解決方案對我來說都不起作用。第一個解決方案適用了目錄選擇對話框(這與打開文件對話框相比,相當的不方便),第二個解決方案不能夠支持100%的對話框功能。

然後,我決定試著去閱讀WinMerge的代碼,想要看看他們用C++是如何去實現同樣的功能的。結果是,所使用的解決方案剛好是用.NET來實現的。

使用代碼
讓打開文件對話框能夠同時選擇文件和目錄的方法是設置它的ValidateNames和CheckFileExists屬性為false,並且設置將FileName屬性設置為一些特殊的字符串來保證選擇的是目錄(如dialog.FileName ="Folder Selection";).

// Set validate names and check file exists to false otherwise windows will
// not let you select "Folder Selection."
dialog.ValidateNames = false;
dialog.CheckFileExists = false;
dialog.CheckPathExists = true;
 
...
 
// Always default to Folder Selection.
dialog.FileName = "Folder Selection.";
為了使用更方便,我在一個自定義的類FileFolderDialog裡面,擴展了OpenFileDialog類,並且添加了一些幫助性的屬性來取得返回的文件名。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved