2013-07-16 55 views
0

所以我從VBA移動到.NET和VBA我用過的Application.FileDialog對象。我真的很喜歡它,因爲你可以改變按鈕名稱,對話框很好。無論如何,所以現在我想在.NET程序中使用它,但是因爲我對.NET有點新,所以我不知道如何實現它。辦公室FileDialog的接口在.NET

它使用Microsoft.Office.Core引用,每當我試圖實例化FileDialog的它說,它不能因爲它是一個接口。好吧,我明白,但那麼我如何實例化它?我試圖創建一個新的類,然後編寫「實現FileDialog」,但隨後VS給了我一個巨大的FileDialog屬性和方法列表,我需要做一些......我很困惑。這是從MSDN參考:http://msdn.microsoft.com/en-us/library/Microsoft.Office.Core.FileDialog%28v=office.14%29.aspx

因此,這裏是我的問題:

  1. 我怎麼不管實現這個,如果有更好的選擇? ...我只想學習
  2. 有沒有更好的方法?一種不同的方式?

UPDATE:尋找一個文件夾瀏覽器,看起來像一個文件瀏覽器

的感謝! 賈斯汀

+0

你也需要使用'Application.FileDialog'。 –

回答

2

如果顯示工具箱爲您的形式存在OpenFileDialog(及其他),你可以拖動到您的表單。有一個簡單的例子使用here

,如果你願意的話,可以使用Microsoft.Office.Core版本,但它是多一點努力(而收效甚微)。

新增的Office文件夾對話框(從VB.NET)的初始步驟是:

Imports Microsoft.Office.Core  'Project menu, Add references 
Imports Microsoft.Office.Interop.Excel 

Public Class Form1 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Dim xl As New Microsoft.Office.Interop.Excel.Application 

     xl.FileDialog(MsoFileDialogType.msoFileDialogFolderPicker).Show() 


    End Sub 
End Class 

你需要去項目菜單,添加引用(S)首次。我用Excel,但它可能是Access等

Here is一個Excel VBA例子 - 你可以納入額外的代碼到礦井。

+0

這是除了好,甚至與OpenFolderDialog時,輸入一個文件夾名稱,然後按回車鍵等的能力,因此不具有文本框,您可以輸入在一個文件夾的名稱,然後按回車,它打開了......由於某種原因,我的用戶喜歡這個功能,所以我不能把它從它們中拿走。我真的非常強迫使用這個Microsoft.Office.Core版本......只是不知道如何實現它。 – Justin

+0

哇!謝謝!這會幫助我很多。我也看到這創建了Excel/Microsoft應用程序的新實例。反正有沒有發生,但仍然使用這種類型的對話框?當我繼續擴展應用程序時,我只想保持一致。 – Justin

+0

我相信你需要將對話框附加到Office應用程序實例。這不是什麼大問題,因爲你沒有做任何事情。順便說一句我發現的例子很差,我相信你會找到一個更好的例子。 –

3

嘗試OpenFileDialog控制

System.Windows.Forms.OpenFileDialog() 

它是否適合你的需要?

+0

本質上就是這樣,但它是挑選文件夾。具體來說,我正在使用此類型msoFileDialogFolderPicker,它爲用戶提供了瀏覽 – Justin