2009-09-07 55 views
1

經過大量的思考和考慮,並且Google-ing,我很想創建我自己的SaveFileDialog。創建一個新的SaveFileDialog

但我不知道從哪裏開始,因爲我沒有看到網絡上的任何東西,所以我想知道是否有人曾經這樣做過,我應該看看什麼,或者我該如何去做這個?任何幫助將不勝感激。

謝謝:-)

Baeltazor。

編輯:


我想創建一個新的SaveFileDialog,因爲我覺得需要(或想)添加更多的功能。我也覺得,如果我建立一個新的,我會學習更多關於C#的知識,以及SaveFileDialog如何在幕後工作

老實說,我不喜歡當前的SaveFileDialog(是的,它的確如此該工作),但我真的很想增加額外的功能。

啊,我不認爲有任何限制。我不能肯定地說,因爲我是新手,不知道需要什麼或...

+3

爲什麼在內置控件的時候開發自己的SaveFileDialog? – Shoban

+2

您有什麼要求/限制?不使用內置的原因是什麼? –

+2

你到底想要什麼?爲什麼窗口SaveFileDialog不夠?因爲我可以告訴你,你需要一種方法來瀏覽你的硬盤,但我認爲你已經想到了... – Zenuka

回答

1

SaveFileDialog是操作系統的一部分,實際上在不同版本的操作系統上會有所不同。有很多方法可以對其進行自定義,但在Windows窗體項目中並不那麼容易。它仍然可以完成,但您必須掛接到本機Win32 API。如果你只是想玩弄Windows Forms和C#,你可以繼續設計一個看起來像SaveFileDialog的表單,但你會錯過本地對話框的所有優點。

您可以閱讀有關common open and save as dialog boxes on MSDN的更多信息,但如果您習慣了Windows窗體編程,您可能會感覺被本機Win32 API疏遠。 Window Vista引入了一個新的common item dialog,基於COM的API使它更容易在Windows窗體應用程序中使用。

4

那麼對話只是一種形式。從表單開始,添加文件系統瀏覽組件(列表視圖,下拉列表等),將代碼添加到後面。雖然沒有那麼困難,但可能很乏味,但我會說一個很好的教育練習,在那裏你會學到爲什麼你可能想要使用內置的一個。

3

如果你真的確定要創建自己的SaveFileDialog版本,我建議不要只克隆現有的版本。如果你看起來像標準的那樣,人們會希望它像標準的一樣,但是有很多細節,你可能不會把它們全部弄清楚。

你想避免The Uncanny Valley of User Interface,所以你應該明確表示它不是試圖成爲SaveFileDialog + some-new-bits。它應該達到相同的目標(即選擇在哪裏保存某些東西)。

如果您確實想要創建SaveFileDialog + some-new-bits,然後沿着Shoban說的路徑extending the dialog即可。

注意:如果你想要做的只是爲了學習目的而構建你自己的,然後在你做時拋棄它,這些都不適用。但是如果你想要使用它一個真正的項目,那麼你應該牢記這一點。

+0

+1:如果你做到了看起來像標準的人,人們會期望它的行爲像標準的那樣 – Nifle