2014-10-11 70 views
-1

我想創建一個文件對話框,就像MS Word中那樣工作。具體來說,您可以在文件對話窗口中選擇一個現有文件,創建一個新文件或刪除一個文件。 OpenFileDialog是一個只讀的交易。您無法使用該控件創建新文件。 SaveFileDialog不能用於選擇現有的文件。有沒有一種控制能夠完成上述所有內容?Winforms OpenFileDialog問題

+0

OpenFileDialog是一個密封類。您不能擴展或修改它。所以創建自己的自定義OpenFileDialog有點複雜。你可以從這裏開始[自定義OpenFileDialog](http://www.codeproject.com/Articles/16276/Customizing-OpenFileDialog-in-NET) – Steve 2014-10-11 17:16:58

+0

謝謝,史蒂夫。顯然,希望情況並非如此。我聽說Powershell Studio可以完成我所要求的所有事情。現在就追趕。感謝您的回覆。 – 2014-10-13 18:21:41

回答

0

創建自定義對話框,您應該遵循以下步驟:

  1. 創建一個新的形式,把它MyFolderDialog
  2. 在新的形式添加你需要的控制。例如,爲了讓用戶瀏覽文件系統,可以添加一個treeView並使用System.IO.FileInfo和System.IO.FolderInfo類來填充它。
  3. 創建您的形式,反映了用戶選擇的屬性,像公共字符串SelectedFolder
  4. 添加一個「確認」按鈕和「取消」按鈕,您的形式
  5. 在取消按鈕單擊事件處理程序中添加代碼this.DialogResult = DialogResult.Cancel;
  6. 在確認按鈕單擊事件處理程序中添加代碼this.DialogResult = DialogResult.Ok;
  7. 打電話給你的自定義對話框這樣

    private string PickAFolder() 
    { 
        string selectedFolder = string.Empty; 
        using(var f = new MyFolderDialog()) 
        { 
         if(f.ShowDialog() == DialogResult.Ok) 
         { 
         selectedFolder = f.SelectedFolder; 
         } 
        } 
        return selectedFolder; 
    } 
    

注意,當使用ShowDialog方法顯示的形式,形式也不會當它將會關閉處理,所以你仍然可以讀他的屬性,你確認後。所以這是一個很好的做法,當你不再需要時手動進行處理。一個很好的方法是使用using關鍵字。

我希望這會有所幫助。