2010-03-25 40 views
4

我想顯示我的Windows窗體中的文件夾內容,用戶可以從哪裏複製粘貼用戶需要的文件,我爲此需要使用哪種類型的容器?如何使用.NET在Windows窗體中顯示Windows文件夾內容?

+0

複製粘貼的文件是什麼?你是僅僅將文件名複製到某個容器中(比如TextBox),還是實際打開文件並對其內容進行操作(如顯示.jpg文件)?請稍微詳細一點。 – BillW

+0

我有一個指定的文件夾,我想顯示其內容給用戶,並允許用戶複製或粘貼項目,但不想出於某種安全原因顯示該文件夾的位置或名稱,只需一個瀏覽器,其中用戶可以採取或給予項目,並且無能爲力, – Badr

+0

用戶甚至無法訪問指定文件夾的根目錄。我的意思是不需要樹視圖 – Badr

回答

2

基本上你有兩種選擇。你可以獲得一個已經構建好的控件,並在你的應用程序中使用它,它們有很多但不是很好,你將不得不支付一個。

或者您可以使用TreeView/ListView並構建您自己的控件,以最好地滿足您的需求。 Here is an example解釋和源代碼。

0

在我使用Ultra win樹(infrajestics控制)之前查看樹視圖中的所有文件。

1

另一種替代方法是你可以得到Windows API Code Pack其中包含一個實際的瀏覽器外殼控制的管理包裝,它基本上允許你直接在你的應用程序中嵌入瀏覽器。

0

假設:

  1. 設計要求禁止表示終端用戶可以複製的文件或糊狀物的實際位置。假設顯示的所有文件名都被剝離了它們的路徑位置。

  2. 文件列表是「平坦」(不需要樹狀型顯示器)

  3. 有一個需要移動或複製,從原來的「完整」列表中的一個或多個文件到另一個「偏列表」

我想創建一個面板兩個列表視圖的接口:每一個的ListView列寬度足以顯示文件名:允許多選在兩人面前。

我會使用標準技術實現拖放操作,或者更可能的是,我會創建一組帶箭頭的按鈕,以在ListView之間來回移動項目。我可能會爲每個ListView單獨刪除按鈕,並要求最終用戶根據應用程序確認刪除。

如果允許「多個副本」(多個具有相同內容的列表條目),我可能會使用一些鍵盤選項來控制它,特別是當我拖放時。

根據應用程序的不同,我會考慮讓最終用戶創建兩個ListView的當前狀態的「快照」,然後可以「恢復」:當一個簡單的「取消」按鈕可以照顧的情況下,你想重置整個事情。

相關問題