2011-07-30 41 views
1

我最近嘗試過最新版本的WinZip,並在「Zip」文件對話框中看到了文本和選項......
我該如何在C#中執行此操作?順便說一下,如果你還沒有弄清楚......我正在談論Vista/7打開文件對話框。
我寧願讓代碼比「你從[這篇文章]中取得[x]行代碼做[this]並自己找出其餘的部分」。如果可以的話,我會這樣做的。OpenFileDialog中的自定義文本和下拉按鈕選項?

+0

這與IFileDialogCustomize COM接口完成。不是不可能的,但與您問題中的最後兩行非常不兼容。 –

+0

@Hans Passant確實......我會如何實現它? – Vercas

+0

Windows API代碼包似乎包裝此接口。 Microsoft.WindowsAPICodePack.Dialogs.Controls命名空間。示例位於以下位置:http://code.msdn.microsoft.com/CSShellCommonFileDialog-dd199163/sourcecode?fileId=20570&pathId=537743262並且您自己找出其餘的。 –

回答

1

我對此做了全部Rambo,並使用win32 API函數來定製對話框。 工作,只有當我的應用程序運行在高架Windows Vista或7

(對不起,我回答這麼晚了,但我忘了這個問題...)

0

據我所知,默認打開文件對話框不能執行重要的自定義。你必須創建你自己的。這並不算糟糕,因爲您可以使用文件瀏覽器控件來完成大部分複雜的工作。


編輯:顯然「文件瀏覽器控制」來自我的想象,而不是我的記憶。我無法找到標準的Microsoft問題文件瀏覽器控件。所以你的選擇是:

  • 下載第三方文件瀏覽器控件,並將其集成到您的對話中。
  • (更可能) - 從不同角度處理您的設計問題。 Winzip對話究竟做了什麼,以及爲什麼要複製它?
+0

文件瀏覽器控件?有沒有內置的,還是必須自己寫? :C – Vercas

+0

我其實已經試過了。它打破了與操作系統的一致性。 – Vercas

0

您可以使用IFileDialogCustomize接口來實現定製,但這可能非常繁瑣且耗時且不靈活。

另一種選擇是使用第三方控件,如Shell MegaPack,這些控件用於將Windows資源管理器像文件/文件夾瀏覽一樣放在自己的表單中。

免責聲明:我爲Shell MegaPack的開發商LogicNP Software工作。